Switch statement i Java forklaret med eksempler
Ved hjælp af eksempler vil du lære, hvordan du bruger switch-sætningen i Java til at regulere flowet af dit programs udførelse. Switch-sætningen lader os vælge flere forskellige måder at køre en kodeblok på. Switch-sætningen i Java har følgende syntaks:
Skift sætning i Java
switch (expression) { case one: // code break; case two: // code break; ... ... default: // run default statements here }
Hvad er formålet med switch-case-erklæringen?
Udtrykket evalueres én gang, og værdierne for hvert tilfælde sammenlignes. Hvis udtrykket matcher én, udløses case én-koden. På samme måde, hvis udtrykket matcher to, startes case tos kode. Hvis der ikke findes noget match, køres standardsagens kode.
Switch-case-sætningen fungerer på samme måde som Java if…else…if. Syntaksen for switch-sætningen er på den anden side væsentligt renere og lettere at læse og skrive.
Eksempel:Javas switch-erklæring
// Program for checking the length using the switch...case statement class CodeMain { public static void main(String[] args) { int numVar = 50; String scoreVar; // switch statement for checking the size switch (numVar) { case 80: scoreVar = "Excellent"; break; case 70: scoreVar = "Good"; break; // match the value of week case 60: scoreVar = "Above Average"; break; case 50: scoreVar = "Average"; break; default: scoreVar = "Indefinite"; break; } System.out.println("Your score is: " + scoreVar); } }
For at finde scoreVar brugte vi switch-sætningen i det foregående eksempel. Vi har et variabelt tal her. Hver case-udsagns værdi sammenlignes med variablen. Koden for case 50 køres, da værdien matcher 50.
Break statement i Javas switch...case
Du vil bemærke, at vi har brugt en pause i hver sagsblok. For eksempel
case 50: scoreVar = "Average"; break;
Switch-case-erklæringen afsluttes med break-erklæringen. Hvis der ikke gives pause, udføres alle sager efter matchningssagen også. Som et eksempel,
class CodeMain { public static void main(String[] args) { int expValue = 3; // switch statement for checking the weight switch (expValue) { case 1: System.out.println("1st Case "); // matching case case 2: System.out.println("2nd Case "); case 3: System.out.println("3rd Case"); case 4: System.out.println("4th Case"); default: System.out.println("Default case"); } } }
I det foregående eksempel svarer expValue til situation 3. Yderligere har vi efter hver instans ikke brugt break-sætningen. Som følge heraf køres alle sager efter sag 3 også. Det er derfor, efter matchende tilfælde, skal switch-case-sætningen afsluttes med en break-sætning.
Java switch-case standard case
En standardsag er også inkluderet i switch-sætningen som en mulighed. Det udføres, når udtrykket ikke passer til nogen af tilfældene. Som et eksempel,
class CodeMain { public static void main(String[] args) { int expVal = 10; switch(expVal) { case 1: System.out.println("Excellent"); break; case 2: System.out.println("Good"); break; case 3: System.out.println("Average"); break; // default case default: System.out.println("out of scope"); } } }
En switch-case-erklæring er fremstillet i det foregående eksempel. Værdien af udtrykket, i dette tilfælde, stemmer ikke overens med nogen af tilfældene. Som følge heraf udføres standardsagens kode.
default: System.out.println("out of scope");
Eksempel:En simpel switch-etui
public class CodeSwitchCase{ public static void main(String args[]){ int numVar=10; switch(numVar+5) { case 1: System.out.println("1st Case: Value is: "+numVar); case 2: System.out.println("2nd Case: Value is: "+numVar); case 3: System.out.println("3rd Case: Value is: "+numVar); default: System.out.println("The Default: Value is: "+numVar); } } }
Vi brugte et udtryk i switchen, men du kan også bruge en variabel. Derudover gav vi ligningen numVar+5, hvor numVar er 10, og resultatet efter addition er 15. Fordi der ikke blev defineret et tilfælde med værdien 15, bruges standardcasset. Derfor bør vi i switch-scenariet bruge standarden, så hvis ingen fangst opfylder betingelsen, køres standardblokken.
Eksempel:Switch-Case uden pause
public class CodeSwitchCase { public static void main(String args[]){ int numVar=5; switch(numVar) { case 1: System.out.println("1st Case "); case 2: System.out.println("2nd Case "); case 3: System.out.println("3rd Case "); case 4: System.out.println("4th Case "); case 5: System.out.println("5th Case "); case 6: System.out.println("6th Case "); case 7: System.out.println("7th Case "); default: System.out.println("No such definition in our cases "); } } }
Selvom pauseerklæringen ikke er påkrævet i skiftesager, vil du altid bruge den. Eksemplet ovenfor er et scenarie, hvor vi ikke bruger break-sætningen.
Vi gav heltalsværdien 5 til switchen i ovenstående program, hvilket fik kontrollen til at skifte til case 5, men vi havde ikke en break-erklæring efter case 5, hvilket fik flowet til at overføre til de efterfølgende cases indtil slutningen. Pauseerklæringen er løsningen på denne situation.
Du bruger break-sætninger, når du ønsker, at dit programflow skal forlade kontaktlegemet. Udførelsesflowet omgås, når en break-sætning opdages i switch-kroppen. Efterfølgende ignoreres resten af forekomsterne.
Eksempel:Switch-Case med pause
Lad os bruge det samme eksempel, men med en pauseerklæring denne gang.
public class CodeSwitchCaseWithBreak { public static void main(String args[]){ int numVar=5; switch(i) { case 1: System.out.println("1st Case "); break; case 2: System.out.println("2nd Case "); break; case 3: System.out.println("3rd Case "); break; case 4: System.out.println("4th Case "); break; case 5: System.out.println("5th Case "); break; case 6: System.out.println("6th Case "); break; case 7: System.out.println("7th Case "); break; default: System.out.println("No such definition in our cases "); } } }
Som du kan se, blev kun sag 5 kørt, mens resten af sagerne blev ignoreret. Efter standard, hvorfor brugte vi ikke pauseerklæringen? Efter standard ville kontrollen komme ud af kontakten, så vi brugte den ikke; men hvis du stadig ønsker at bruge pausen efter standard, så gå videre; der er ingen skade.
Eksempel:Brug af tegn i skiftende bogstaver
public class CodeSwitchCase { public static void main(String args[]){ char charVar='z'; switch(charVar) { case 'a': System.out.println("1st Case "); break; case 'b': System.out.println("2nd Case "); break; case 'c': System.out.println("3rd Case "); break; case 'd': System.out.println("4th Case "); break; default: System.out.println("Default "); } } }
Eksempel:Skift størrelse til månedsvariable
//Program for demonstrating the Switch statement by printing the month's name for the given number public class CodeSwitchMonth { public static void main(String[] args) { //indicate the current month's number int monthVar=5; String resultVar=""; //Switch statement switch(monthVar){ //case statements within the switch block case 1: resultVar="1 - January"; break; case 2: resultVar="2 - February"; break; case 3: resultVar="3 - March"; break; case 4: resultVar="4 - April"; break; case 5: resultVar="5 - May"; break; case 6: resultVar="6 - June"; break; case 7: resultVar="7 - July"; break; case 8: resultVar="8 - August"; break; case 9: resultVar="9 - September"; break; case 10: resultVar="10 - October"; break; case 11: resultVar="11 - November"; break; case 12: resultVar="12 - December"; break; default:System.out.println("This is not a valid Month!"); } //Printing the given numbers' month System.out.println(resultVar); } }
Konklusion
Vi bruger switch case-erklæringen, når vi har flere muligheder (eller valg), og vi skal muligvis udføre en anden handling for hvert valg. Også selvom det er valgfrit, bruges Switch Case-sætningen ofte sammen med break-sætningen. Så overordnet set er det muligt at have en koblingssag uden bruderklæring og en koblingssag med brud, som vi har set i eksemplerne.
Ordre 1, 2, 3 og så videre er ikke nødvendigvis påkrævet i en sag. Efter sagsøgeordet kan det have en hvilken som helst heltalsværdi. Desuden skal sagen ikke altid specificeres i stigende rækkefølge, afhængigt af kravet, og du kan levere dem i vilkårlig rækkefølge. Derudover, hvis udtrykket givet inde i switchen ikke resulterer i en konstant værdi, er det ikke gyldigt. Switch-sætninger kan indlejres, hvilket betyder, at du kan placere en switch-sætning i en anden. På den anden side undgås indlejrede switch-sætninger, fordi de gør programmet mere komplekst og udfordrende at læse.