Java >> Java tutorial >  >> Tag >> switch

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.


Java tag