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

Switch Case Statement i Java

Switch-sætningen vælger en af ​​mange kodeblokke, der skal køres. Følgende er, hvordan det virker:

  • Switchudtrykket evalueres kun én gang
  • Udtrykkets værdi sammenlignes med værdierne i hver omstændighed
  • Hvis der findes et match, køres den relevante kodeblok
  • Nøgleordene pause og standard er valgfrie og vil blive diskuteret senere

Skift sagserklæring Java

Switch-sætningen i Java har følgende syntaks:

switch (expression) {

  case value1:
    // code
    break;
  
  case value2:
    // code
    break;
  
  ...
  ...
  
  default:
    // default statements
  }

Hvad er formålet med switch-case-erklæringen?

Udtrykket evalueres én gang, og værdierne for hver forekomst sammenlignes. Hvis udtrykket matcher værdi1, udløses kasusværdi1-koden. På samme måde, hvis udtrykket matcher værdi2, køres case value2s 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. Ugedagsnummeret bruges til at beregne ugedagsnavnet i eksemplet nedenfor:

public class Main {
  public static void main(String[] args) {
    int chooseDay = 6;
    switch (chooseDay) {
      case 1:
        System.out.println(" It is a Monday");
        break;
      case 2:
        System.out.println("It is a Tuesday");
        break;
      case 3:
        System.out.println("It is a Wednesday");
        break;
      case 4:
        System.out.println("It is a Thursday");
        break;
      case 5:
        System.out.println("It is a Friday");
        break;
      case 6:
        System.out.println("It is a Saturday");
        break;
      case 7:
        System.out.println("It is a Sunday");
        break;
    }
  }
}

Brug søgeord

Udtrykket "pause" beskriver en periode, hvor Java forlader switch-blokken, når den når break nøgleordet. Mere kode- og casetest udføres ikke inde i blokken på grund af dette. Det er tid til at tage en pause, når du har opdaget et match og afsluttet opgaven. Der kræves ikke flere tests.

En pause kan spare meget tid, fordi den "ignorerer" udførelsen af ​​resten af ​​koden i switch-blokken.

Hvad er standardsøgeordet?

Hvis der ikke er nogen tilfælde, definerer standardsøgeordet en kode, der skal køres. Hvis den bruges som den sidste sætning i en switch-blok, kræver standardsætningen ikke en pause.

public class Main {
  
  public static void main(String[] args) {
    int chooseDay = 4;
    switch (chooseDay) {
      case 6:
        System.out.println("Today is Saturday");
        break;
      case 7:
        System.out.println("Today is Sunday");
        break;
      default:
        System.out.println("It is a rest day");
    }    
  }
}

Bruger ikke break-sætningen

Brugen af ​​pauseerklæringen er valgfri. Hvis pausen springes over, fortsætter eksekveringen til følgende tilfælde. Men flere sager uden bruderklæringer imellem dem er lejlighedsvis gavnlige. Overvej f.eks. den reviderede version af softwaren ovenfor, som viser, om en given dag er en hverdag eller en weekenddag.

// Java program demonstrating the switch case with multiple cases without break statements

public class Test {
	public static void main(String[] args)
	{
		int day = 2;
		String typeOfDay;
		String daysActivity;

		switch (day) {
		// multiple cases without break statements

		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			typeOfDay = "On Duty";
			break;
		case 6:
		case 7:
			typeOfDay = "Holiday";
			break;

		default:
			typeOfDay = "Invalid  Answer";
		}

		System.out.println( daysActivity + " is a " + typeOfDay);
	}
}

Skift sagsudsagn, der er indlejret

En switch kan bruges som en del af en ydre switchs sætningssekvens. Det omtales som en indlejret switch. Fordi en switch-sætning opretter sin blok, er der ingen konflikter mellem case-konstanter i de indre og ydre switche. Overvej følgende scenarie:

// Java program to demonstrate how to use a nested switch case statement
public class Test {
	public static void main(String[] args)
	{
		String Branch = "electives";
		int yearOfStudy = 3;

		switch (yearOfStudy) {
		case 1:
			System.out.println("main course : Computer  Studies in General");
			break;
		case 2:
			System.out.println("main course : Understanding Digital Mathematics");
			break;
		case 3:
			switch (electives) // nested switch
			{
			case "BIG DATA":
			case "DATA SCIENCE":
				System.out.println("elective options : The diversity of data in the digital age");
				break;

			case "DATABASE":
				System.out.println("elective options : Relational Databases");
				break;

			default:
				System.out.println("elective options : Machine Learning in CS");
			}
		
		case 4:
			System.out.println("main course : Advanced data structures and Algorithms");
			break;
		}
	}
}

Følgende er nogle kritiske switch-sætningsregler:

  • Identiske værdier for store og små bogstaver er ikke tilladt.
  • En sags værdi skal være den samme datatype som switchens variabel.
  • En kasus værdi skal enten være en konstant eller en bogstavelig. Variabler er ikke tilladt.
  • Pause-sætningen bruges til at afslutte en sætningssekvens inde i switchen.
  • Pauseerklæringen er ikke påkrævet. Hvis denne parameter efterlades tom, vil udførelsen gå til næste tilfælde.
  • Standardsætningen kan gå hvor som helst inden for switch-blokken og er valgfri. Hvis den ikke er i slutningen, tilføjes en break-sætning efter standardsætningen for at forhindre, at følgende case-sætning udføres.

Eksempel 1:Skift sagsudsagn på elevernes resultater

Example 1: Switch Case Statement on Students Results

// Java Program for checking the size using the switch...case statement

class Main {
  public static void main(String[] args) {

    int num = 20;
    String result;

    // switch statement to check student results
    switch (num) {

      case 20:
        result = "Below Average";
        break;

      case 51:
        result = "Average";
        break;

      // match the value of week
      result 71:
        size = "Good";
        break;

      case 94:
        result = "Excellent";
        break;
      
      default:
        result = "Unknown";
        break;

    }
    System.out.println("Your Score is: " + result);
  }
}

Vi brugte switch-sætningen i det foregående eksempel til at finde størrelsen. Vi har et variabelt tal her. Hver case-udsagns værdi sammenlignes med variablen. For eksempel køres koden for case 20, da værdien matcher 20. Størrelsesvariablen får værdien 'Below Average' i dette tilfælde.

Konklusion

Ved hjælp af eksempler har du lært, 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å. En multi-way branch statement er switch statement. Det gør det nemt at dirigere eksekvering til andre kodeområder baseret på udtrykkets værdi. De primitive datatyper byte, short, char og int kan alle bruges i udtrykket. Det fungerer også med opregnede typer som Enums i Java-, String- og Wrapper-klasser, startende med JDK7.


Java tag