Objective-C - declaração switch

UMA switchinstrução permite que uma variável seja testada quanto à igualdade em relação a uma lista de valores. Cada valor é chamado de caso, e a variável que está sendo ligada é verificada para cadaswitch case.

Sintaxe

A sintaxe para um switch declaração na linguagem de programação Objective-C é a seguinte -

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

As seguintes regras se aplicam a um switch declaração -

  • o expression usado em um switch instrução deve ter um tipo integral ou enumerado ou ser de um tipo de classe em que a classe tenha uma única função de conversão para um tipo integral ou enumerado.

  • Você pode ter qualquer número de declarações de caso em um switch. Cada caso é seguido pelo valor a ser comparado e dois pontos.

  • o constant-expression para um caso, deve ser do mesmo tipo de dados que a variável no switch e deve ser uma constante ou literal.

  • Quando a variável que está sendo ativada é igual a um caso, as instruções após esse caso serão executadas até um break declaração é alcançada.

  • Quando um break a instrução é alcançada, a opção termina e o fluxo de controle salta para a próxima linha após a instrução switch.

  • Nem todo caso precisa conter um break. Se nãobreakaparecer, o fluxo de controle cairá para os casos subsequentes até que uma pausa seja alcançada.

  • UMA switch declaração pode ter um opcional defaultcaso, que deve aparecer no final do switch. O caso padrão pode ser usado para executar uma tarefa quando nenhum dos casos for verdadeiro. Nãobreak é necessário no caso padrão.

Diagrama de fluxo

Exemplo

#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 o código acima é compilado e executado, ele produz o seguinte resultado -

2013-09-07 22:44:26.928 demo[17555] Well done
2013-09-07 22:44:26.929 demo[17555] Your grade is  B
objetiva_c_decisão_making.htm