Étude de l'instruction Java-Part 11-switch

1.Tout d'abord

Cette fois, il s'agit de branchements conditionnels similaires à l'instruction if!

Son nom est "** instruction de commutation **"! Personnellement, j'utilise souvent des instructions if, mais je vois parfois des commutateurs, donc cela vaut la peine de s'en souvenir!

2. instruction switch

2.1.commutateur --basic

L'instruction switch est également une expression conditionnelle. L'instruction switch de base ressemble à ceci: ..

Main.java


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

		//↓ instruction de commutation à partir d'ici
		switch(formule){
valeur de cas_0:
			//Traitement pour la valeur 0
			break;
valeur de cas_1:
			//Traitement pour la valeur 1
			break;
valeur de cas_2:
			//Traitement pour la valeur 2
			break;
		}
		//↑ instruction switch jusqu'ici
	}
}

Les types primitifs de base peuvent être utilisés dans les expressions.

Cependant, ce n'est pas suffisant w

Entrons une valeur spécifique pour que nous puissions la comprendre un peu plus!

Main.java{


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

		int number = 1;

		//↓ instruction de commutation à partir d'ici
		switch(number){
		case 0:
			//Traitement pour la valeur 0
			System.out.println("C'est un affichage de 0");
			break;
		case 1:
			//Traitement pour la valeur 1
			System.out.println("1 écran");
			break;
		case 2:
			//Traitement pour la valeur 2
			System.out.println("Affichage de 2! !! Ugogogogogo");
			break;
		}
		//↑ instruction switch jusqu'ici
	}
}

Tout d'abord, vous avez initialisé à number = 1!

Ensuite, je passerai la valeur à juger par le commutateur (nombre). On évalue si la valeur du nombre passée à ce moment correspond à la droite de chaque cas.

Puisque nombre = 1 cette fois, le traitement dans le cas 1: est exécuté et "" 1 est affiché "" est sorti.

C'est aussi une bonne étude pour changer la valeur du nombre de 0 à 2.

2.2. switch - break

L'essentiel est que si vous n'écrivez pas une phrase «break;», vous serez misérable. Par exemple, l'exemple suivant. ..

Main.java


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

		int number = 1;

		//↓ instruction de commutation à partir d'ici
		switch(number){
		case 0:
			//Traitement pour la valeur 0
			System.out.println("C'est un affichage de 0");
		case 1:
			//Traitement pour la valeur 1
			System.out.println("1 écran");
		case 2:
			//Traitement pour la valeur 2
			System.out.println("Affichage de 2! !! Ugogogogogo");
		}
		//↑ instruction switch jusqu'ici
	}
}

J'ai effacé tous les mots de rupture. Et alors?

Après avoir exécuté le processus après avoir satisfait à la condition du cas 1: Vous pouvez voir que le traitement du cas 2: a également été exécuté.

Que se passe-t-il! vous savez! ~~ Au fait, vous pouvez voir que le traitement de base s'est déroulé de haut en bas w ~~

Si vous n'écrivez pas de pause, il passera au processus suivant et le processus du cas suivant sera exécuté.

N'oubliez pas de "casser" si nécessaire! !!


Comme technique rare

Main.java


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

        int number = 1;

        //↓ instruction de commutation à partir d'ici
        switch(number){
        case 0:
        case 1:
        case 2:
            //Valeur 0, 1,Traitement d'environ 2
            System.out.println("C'est un affichage de 0, 1 et 2");
            break;
        }
        //↑ instruction switch jusqu'ici
    }
}

Vous pouvez également tout faire ensemble.

2.3. switch - default Vous pouvez utiliser else dans l'instruction if.

Au lieu de cela d'autre? Il existe une valeur par défaut qui peut être utilisée pour. Comment utiliser ...

Main.java


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

		int number = -1;

		//↓ instruction de commutation à partir d'ici
		switch(number){
		case 0:
			//Traitement pour la valeur 0
			System.out.println("C'est un affichage de 0");
			break;
		case 1:
			//Traitement pour la valeur 1
			System.out.println("1 écran");
			break;
		case 2:
			//Traitement pour la valeur 2
			System.out.println("Affichage de 2! !! Ugogogogogo");
			break;
		default:
			System.out.println("Yaaaaaaa");
			break;
		}
		//↑ instruction switch jusqu'ici
	}
}

Le point est la dernière ligne.

default:
  System.out.println("Yaaaaaaa");

Le lieu. C'est comme ailleurs dans l'instruction if.

Si aucune des valeurs ne s'applique, le processus s'exécutera par défaut.

2.4.commutateur - Type de chaîne

Il a un peu déraillé, mais À partir de Java SE 7, le type String peut être utilisé dans la syntaxe du commutateur. (Comme connaissance du haricot Plus tôt, j'ai mentionné que vous pouvez utiliser des types primitifs dans les expressions de commutation, mais maintenant vous pouvez traiter les types String un peu plus spécialement!

Main.java


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

		String number = "zero";

		//↓ instruction de commutation à partir d'ici
		switch(number){
		case "zero":
			//Traitement pour la valeur zéro
			System.out.println("C'est un affichage de 0");
			break;
		case "one":
			//Traiter d'abord la valeur
			System.out.println("1 écran");
			break;
		case "two":
			//Traitement pour la valeur deux
			System.out.println("Affichage de 2! !! Ugogogogogo");
			break;
		default:
			System.out.println("Yaaaaaaa");
			break;
		}
		//↑ instruction switch jusqu'ici
	}
}

Vous pouvez maintenant l'utiliser de la même manière que les valeurs numériques normales. ~~ Merci ~~

Cependant!

Si le type String est vide, "null" (Un état dans lequel il y a un garbage d'existence spécial appelé null autre que l'état tel que number = "", number = "null") Dans ce cas, il ne sera pas récupéré par défaut, alors soyez prudent! !! Par exemple, l'exemple ci-dessous.

Main.java


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

		String number = null;

		//↓ instruction de commutation à partir d'ici
		switch(number){
		case "zero":
			//Traitement pour la valeur zéro
			System.out.println("C'est un affichage de 0");
			break;
		case "one":
			//Traiter d'abord la valeur
			System.out.println("1 écran");
			break;
		case "two":
			//Traitement pour la valeur deux
			System.out.println("Affichage de 2! !! Ugogogogogo");
			break;
		default:
			System.out.println("Yaaaaaaa");
			break;
		}
		//↑ instruction switch jusqu'ici
	}
}

Vous mettez null dans le numéro appelé de type String que vous avez déclaré soudainement.

Et quand j'exécute ce programme, j'obtiens l'erreur "NullPointerException" sur la ligne de commutateur (numéro). Soi-disant "Nurupo".

Par conséquent, je pense que c'est une bonne idée de vérifier s'il est nul avant de le passer par le commutateur.

Main.java


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

		String number = null;

		//chèque nul
		if(number == null){
			//Si nombre est nul, mettez une chaîne de caractères vide pour le moment
			number = "";
		}

		//↓ instruction de commutation à partir d'ici
		switch(number){
		case "zero":
			//Traitement pour la valeur zéro
			System.out.println("C'est un affichage de 0");
			break;
		case "one":
			//Traiter d'abord la valeur
			System.out.println("1 écran");
			break;
		case "two":
			//Traitement pour la valeur deux
			System.out.println("Affichage de 2! !! Ugogogogogo");
			break;
		default:
			System.out.println("Yaaaaaaa");
			break;
		}
		//↑ instruction switch jusqu'ici
	}
}

C'est peut-être extrême, mais cela a peut-être été fait comme ça.

3. Conclusion

Pour résumer cette fois,

--switch peut être utilisé comme expression conditionnelle

  • La rupture ne doit pas être négligée si nécessaire
  • Vous pouvez utiliser else dans l'instruction if appelée default --Le type chaîne peut être géré, mais soyez prudent avec null

c'est tout.

~~ Il y a quelque chose qui me donne l'impression d'avoir oublié de l'écrire, mais ...

La prochaine fois, j'aimerais écrire un article sur "pour phrase"! !!

Il semble qu'il y aura un petit intervalle de mise à jour, alors veuillez patienter.

Recommended Posts