Objective-C - istruzione switch

UN switchconsente di verificare l'uguaglianza di una variabile rispetto a un elenco di valori. Ogni valore è chiamato caso e per ciascuno di essi viene controllata la variabile attivataswitch case.

Sintassi

La sintassi per a switch L'istruzione nel linguaggio di programmazione Objective-C è la seguente:

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);
}

Le seguenti regole si applicano a un file switch dichiarazione -

  • Il expression utilizzato in a switch deve avere un tipo integrale o enumerato oppure essere di un tipo di classe in cui la classe ha una singola funzione di conversione in un tipo integrale o enumerato.

  • È possibile avere un numero qualsiasi di istruzioni case all'interno di uno switch. Ogni caso è seguito dal valore da confrontare e da due punti.

  • Il constant-expression per un caso deve essere lo stesso tipo di dati della variabile nello switch e deve essere una costante o un valore letterale.

  • Quando la variabile da attivare è uguale a un caso, le istruzioni che seguono quel caso verranno eseguite fino a quando a break dichiarazione è raggiunta.

  • Quando un break viene raggiunta, lo switch termina e il flusso di controllo salta alla riga successiva dopo l'istruzione switch.

  • Non tutti i casi devono contenere un file break. Se nobreakappare, il flusso di controllo saranno cadere attraverso i casi successivi fino al raggiungimento di una pausa.

  • UN switch l'istruzione può avere un optional defaultcaso, che deve comparire alla fine dell'interruttore. Il caso predefinito può essere utilizzato per eseguire un'attività quando nessuno dei casi è vero. Nobreak è necessario nel caso predefinito.

Diagramma di flusso

Esempio

#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;
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

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