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