Obra: Java/Comandos de seleção
como pode se notar conhecimento adquirido até aqui não permite criação de programas interativos eles sempre executam da mesma forma independente do que usuário faz ou dos valores que são recebidos mas agora iremos aprender usar alguns comandos que permitem que dependendo das circunstâncias os programas executem instruções diferentes instrução if instrução de seleção única if também conhecida por if then possibilita execução condicional de um bloco de instruções if instruções que serão executadas caso resulte true depois da palavra chave if necessária uma expressão booleana entre parênteses caso expressão booleana resulte no valor true em tempo de execução então bloco seguinte será executado caso resulte em false aquele será ignorado bloco de instruções pode conter ou mais instruções as chaves que delimitam bloco são opcionais caso se tenha apenas uma instrução ser executada int hora boolean emanha false exemplo com bloco if hora pm mesmo que horas instrução if else também conhecida como instrução if then else instrução de seleção dupla if else tem função complementar de if executa instruções no caso da expressão booleana de if resultar em false if instruções que serão executadas caso resulte true else instruções que serão executadas caso resulte false palavra chave else deve estar logo após da instrução ões de if após palavra chave else deve ser colocado bloco de instruções serem executadas no caso da expressão booleana de if resultar em false assim como if as chaves delimitadoras de bloco são opcionais caso haja apenas uma instrução executar int hora if hora pm mesmo que horas instruções if else aninhadas as instruções if ou if else podem ser aninhadas dentro de outras instruções if ou if else para casos em que antes de determinadas instruções serem executadas sejam necessárias combinações de resultados de expressões booleanas if if instruções serem executadas caso as expressões booleanas resultem em true else instruções serem executadas caso expressão booleana resulte em true em false else if instruções serem executadas caso expressão booleana resulte em false em true else instruções serem executadas caso as expressões booleanas resultem em false as instruções if if else aninhadas não apresentam nenhum comportamento diferente do esperado caso não estivessem aninhadas estão sendo abordadas apenas com intuito de exemplificar possibilidade de aumento das ramificações de decisões int hora if hora if hora possível verificar no exemplo acima que primeira instrução if mesmo contendo mais de uma linha de instruções consegue identificar que if else forma uma única ramificação assim executar expressão booleana normalmente isso se deve ao fato que toda else está vinculada uma if já na else com escopo mais externo verifica se chaves delimitadoras de bloco essas chaves são necessárias por conta de uma segunda instrução nomeadamente system out println que executada do resultado da expressão booleana da if else int hora if hora system out print erro hora deve
utada do resultado da expressão booleana da if else int hora if hora system out print erro hora deve ser menor que else if hora no exemplo acima há um recurso estilístico para indentar código com finalidade de aprimorar legibilidade as palavras chave if foram anexadas às palavras chave else já que as else têm somente uma instrução cada por isso não necessitam de chaves para delimitar bloco de instruções código abaixo tem exatamente mesma funcionalidade apesar das quebras de linha int hora if hora system out print erro hora deve ser menor que else if hora instrução switch instrução switch por vezes chamada de switch case possibilita execução condicional de instruções de acordo com correspondência entre expressão avaliada constante em case switch expressao case constante instruções break case constante instruções break case default instruções dentro do parâmetro da switch pode ser utilizada expressão que resulte em byte short char int string enum as chaves que delimitam bloco são necessárias ainda que só haja uma ramificação do fluxo do código palavra chave case indica as ramificações de código deve ser seguida de uma expressão constante que corresponda ao tipo da expressão inserida no parâmetro da switch essa expressão constante por sua vez deve ser seguida de que carácter que delimita início do bloco de instruções relativo case após podem ser inseridas ou mais instruções incluindo palavra chave break que será abordada mais adiante ao iniciar outra instrução case ou inserir chave de fechamento do bloco de switch bloco anterior encerrado int dia final int segunda final int sexta switch dia case segunda system out print segunda case system out print terça case system out print quarta case system out print quinta case sexta system out print sexta case system out print sábado case case system out print domingo quinta sexta sábado domingo em tempo de execução variável dia será comparada com as expressões constantes definidas em tempo de compilação de cada case case contendo valor tem valor igual ao da variável dia então desse ponto em diante todas as instruções serão executadas até que chegue término do bloco de switch instrução break caso seja necessário que apenas sejam executadas instruções vinculadas determinadas case então deve se utilizar instrução break após instrução break fluxo do programa sai do bloco de switch int dia final int segunda final int sexta switch dia case segunda system out print segunda case system out print terça case system out print quarta case system out print quinta case sexta system out print sexta break case system out print sábado case case system out print domingo system out println fora do bloco de instruções de switch com instrução break inserida no bloco da case com valor sexta código será executado da case com valor até essa break referida quinta sexta fora do bloco de instruções de switch instrução default instrução default pode ser utilizada para caso da expressão no parâmetro de switch não corresponder nenhum dos
default pode ser utilizada para caso da expressão no parâmetro de switch não corresponder nenhum dos valores das instruções case default pode aparecer em qualquer ordem segue mesmo funcionamento que case no que tange bloco de instruções uso de break int dia final int segunda final int sexta switch dia case segunda system out print segunda case system out print terça case system out print quarta default system out println erro dia deve estar entre break case system out print quinta case sexta system out print sexta break case system out print sábado case case system out print domingo erro dia deve estar entre exercícios exercícios int if if dado código acima responda que será impresso na tela afirmação está correta será exibido menor que porém informação está incorreta instrução else está vinculada if imediatamente anterior no parâmetro dessa if expressão booleana resultará false logo informação correta seria maior ou igual como corrigir código int if if exercício double double if system out println igual else if system out println maior que else if dado código acima responda remova código desnecessário defina blocos de instruções para todas as instruções if else indente última expressão booleana não necessária pois caso um número não seja maior ou igual um número obviamente ele será menor double double if system out println igual else if system out println maior que else system out println menor que