Java/Comandos de seleção
Origem: Wikilivros, livros abertos por um mundo aberto.
Tenha calma.
Esta página ainda está em desenvolvimento.
O autor avisa que este conteúdo ainda pode conter vários erros.
Como pode-se notar, o conhecimento adquirido até aqui não permite a criação de programas muito interativos. Eles sempre executam da mesma forma, independente do que o usuário faz ou dos valores que são recebidos. Mas agora iremos aprender a usar alguns comandos que permitem que dependendo das circunstâncias, os programas executem instruções diferentes.
[editar] O comando if-then-else
O comando if-then-else permite que você escolha duas ações diferentes a serem seguidas. Ele segue a seguinte sintaxe:
if(VALOR_BOOLEAN){
comando1;
comando2;
(...)
comandon;
}else{
comando1;
comando2;
(...)
comandon;
}
Onde VALOR_BOOLEAN é uma literal, variável ou operador que possui ou retorna um valor do tipo boolean. Se o valor de VALOR_BOOLEAN for "verdadeiro", a seqüência de comandos que vai desde o primeiro { após o comando até o primeiro } é executada. Caso contrário, a seqüência de comandos cercada por colchetes após a palavra else é executada. O comando else é opcional. E caso após o if ou após o else exista apenas um comando, o uso de colchetes também se torna opcional. Exemplos de uso:
Exemplo 1:
if(elemento1>elemento2)
System.out.println("O primeiro elemento é maior"); //Repare que não são usados colchetes, pois este é o único comando a ser executado neste bloco
else{
elemento1=elemento2;
System.out.println("O primeiro elemento era menor, mas agora já recebeu o valor do segundo elemento");
}
Exemplo 2:
if(elemento2==elemento1) //Este é um exemplo de "if" sem um "else". Se os números não forem iguais, nenhum comando é executado
System.out.println("Os numeros são iguais");
Exemplo 3:
int nota; //Vários "if"s e "else"s podem ser combinados formando vários caminhos que o seu programa pode seguir if(acertos==0) nota=0; else if(acertos<20) nota=10; else if(acertos<50) nota=40; else if(acertos<80) nota=60; else nota=100;
Repare que no exemplo acima, só um dos comandos de atribuição será executado. Mesmo que o valor da variável "acerto" satisfaça mais de uma das condições. O comando a ser executado será o primeiro cujo valor de condição seja "verdadeiro". Mas caso os "else"s sejam removidos no exemplo acima, os comandos que seriam executados seriam todos aqueles cujo valor de condição sejam verdadeiros - e não apenas o primeiro.
[editar] O comando switch-case
O comando switch-case é bastante semelhante ao if-then-else. A diferença é que ele é mais recomendado caso o seu programa tenha muitos caminhos a serem seguidos por ser um comando mais fácil de ser escrito e interpretado. A sintaxe do comando é
switch(VARIÁVEL){
case VALOR1: comandos; break;
case VALOR2: comandos; break;
(...)
case VALORn: comandos; break;
default: comandos; break;
}
Onde VARIÁVEL pode ser qualquer variável de qualquer tipo e VALOR pode ser qualquer literal do mesmo tipo que a variável. Os comandos a serem executados são aqueles posicionados entre a literal que possuir o mesmo valor que a variável e o comando "break". Caso nenhum literal tenha o mesmo valor que a variável, os comandos posicionados logo após o "default" são executados. O "default" é opcional. Exemplos de uso:
int mes=5;
switch (mes) {
case 1: System.out.println("Janeiro"); break;
case 2: System.out.println("Fevereiro"); break;
case 3: System.out.println("Março"); break;
case 4: System.out.println("Abril"); break;
case 5: System.out.println("Maio"); break;
case 6: System.out.println("Junho"); break;
case 7: System.out.println("Julho"); break;
case 8: System.out.println("Agosto"); break;
case 9: System.out.println("Setembro"); break;
case 10: System.out.println("Outubro"); break;
case 11: System.out.println("Novembro"); break;
case 12: System.out.println("Dezembro"); break;
default: System.out.println("Mês inválido.");break;
}
No exemplo acima, a string "Maio" será impressa na tela.