Objective-C - instruction switch

UNE switchL'instruction permet à une variable d'être testée pour l'égalité par rapport à une liste de valeurs. Chaque valeur est appelée un cas et la variable activée est vérifiée pour chaqueswitch case.

Syntaxe

La syntaxe d'un switch L'instruction en langage de programmation Objective-C est la suivante -

switch(expression){
   case constant-expression  :
      statement(s);
      break; /* optional */
   case constant-expression  :
      statement(s);
      break; /* optional */
  
   /* you can have any number of case statements */
   default : /* Optional */
      statement(s);
}

Les règles suivantes s'appliquent à un switch déclaration -

  • le expression utilisé dans un switch L'instruction doit avoir un type intégral ou énuméré ou être d'un type de classe dans lequel la classe a une seule fonction de conversion en un type intégral ou énuméré.

  • Vous pouvez avoir n'importe quel nombre d'instructions case dans un commutateur. Chaque cas est suivi de la valeur à comparer et d'un signe deux-points.

  • le constant-expression pour un cas doit être du même type de données que la variable dans le commutateur, et ce doit être une constante ou un littéral.

  • Lorsque la variable activée est égale à un cas, les instructions qui suivent ce cas s'exécutent jusqu'à ce qu'un break déclaration est atteinte.

  • Lorsqu'un break est atteinte, le commutateur se termine et le flux de contrôle passe à la ligne suivante après l'instruction switch.

  • Tous les cas ne doivent pas nécessairement contenir break. Sinonbreakapparaît, le flux de contrôle va tomber dans les cas suivants jusqu'à ce qu'une pause soit atteinte.

  • UNE switch l'instruction peut avoir une option defaultcas, qui doit apparaître à la fin du commutateur. Le cas par défaut peut être utilisé pour exécuter une tâche lorsqu'aucun des cas n'est vrai. Nonbreak est nécessaire dans le cas par défaut.

Représentation schématique

Exemple

#import <Foundation/Foundation.h>
 
int main () {
   
   /* local variable definition */
   char grade = 'B';

   switch(grade) {
   case 'A' :
      NSLog(@"Excellent!\n" );
      break;
   case 'B' :
   case 'C' :
      NSLog(@"Well done\n" );
      break;
   case 'D' :
      NSLog(@"You passed\n" );
      break;
   case 'F' :
      NSLog(@"Better try again\n" );
      break;
   default :
      NSLog(@"Invalid grade\n" );
   }
   
   NSLog(@"Your grade is  %c\n", grade );
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

2013-09-07 22:44:26.928 demo[17555] Well done
2013-09-07 22:44:26.929 demo[17555] Your grade is  B