Programação D - Declaração Switch
UMA switchdeclaraçã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 D é 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 declaração deve ter um tipo integral ou enumerado, ou ser de um tipo de classe em que a classe tem 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 são executadas até um break declaração é alcançada.
Quando um break a instrução for alcançada, a chave será encerrada e o fluxo de controle pula 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 cai 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 std.stdio;
int main () {
/* local variable definition */
char grade = 'B';
switch(grade) {
case 'A' :
writefln("Excellent!" );
break;
case 'B' :
case 'C' :
writefln("Well done" );
break;
case 'D' :
writefln("You passed" );
break;
case 'F' :
writefln("Better try again" );
break;
default :
writefln("Invalid grade" );
}
writefln("Your grade is %c", grade );
return 0;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Well done
Your grade is B