Maison > Article > développement back-end > php : explication détaillée de la différence entre switch et if
【Transfert】La différence entre switch et if
Si vous comparez uniquement des nombres ou des caractères, il est recommandé d'utiliser switch, car il ne supprimera que le variable dans les parenthèses de commutation initiales valeur une fois, puis comparez cette valeur avec le cas défini ci-dessous. Mais si vous utilisez if, vous devez supprimer la valeur de la variable à chaque fois que vous rencontrez l'expression conditionnelle. ici. Par exemple :
if(a == 1) //... else if(a == 2) //... else if(a == 3) //...
Dans le pire des cas, c'est-à-dire lorsque a = 3, ce fragment de programme nécessite un total de 3 comparaisons, et chaque comparaison doit être prise out La valeur de la variable a une fois. Si vous passez à switch :
switch(a) { case 1: //... break ; case 2: //... break; case 3: //... break; }
Dans ce fragment de programme, retirez uniquement la valeur de la variable a entre parenthèses du switch au début, puis comparez les cas suivants un par un, efficacité La différence réside ici. Bien sûr, il n'est pas mauvais d'utiliser if. Lorsque vous rencontrez des conditions composées, switch ne peut pas aider. Puisque les instructions conditionnelles complexes ne peuvent pas être combinées dans switch, vous devez utiliser if. En termes simples, if et switch peuvent être utilisés ensemble de manière flexible.
Si est très similaire à l'instruction switch, comment choisir de l'utiliser ? S'il est jugé qu'il n'y a pas beaucoup de valeurs spécifiques et qu'elles sont conformes aux types byte, short, char, int, String, bien que les deux instructions puissent être utilisées, il est recommandé d'utiliser l'instruction switch , ce qui est plus efficace. Autres situations : pour le jugement par intervalle, pour Le type de résultat est booléen pour le jugement, utilisez if, if est plus général.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!