Java – Instruções de Desvio

Publicado: outubro 25, 2007 em Java

Linguagens de alto nível implementam várias estruturas de controle do fluxo do programa para facilitar o desenvolvimento de programas e promover um melhor estilo de programação. Os comandos de seleção e repetição são mais empíricos do que os comandos tradicionais em linguagem de máquina.

Java possui duas instruções de desvio condicionais mais uma palavra reservada que não deve ser usada. Todas elas existem em várias outras linguagens e plataformas.

Comando: if

O comando if executa um trecho de código apenas uma vez, dependendo de sua condição. A sintaxe segue a sintaxe abaixo.

if ( <condição>  ) {
    <comandos>
 } else {
    <comandos>
 }

A condição é uma expressão da linguagem java e pode ser qualquer conjunto de operações que retornem um valor booleano. Ex: (i > = 0) ou (a = = 5 & & b! = 5 | | c = = a) O ” comandos 1 ” e ” comandos 2 ” são um conjunto de um ou mais comandos da linguagem Java. No caso de ser apenas um comando o uso de {} não é necessário.

Se a condição for verdadeira o interpretador executará o ” comandos 1 ” caso contrário o bloco ” comandos 2 ” será executado. Exemplo:

public class ExemploIf {
  public static void main(String[] args) {
    int i = 8;
    // If que dirá se o valor do i é igual a 1 ou igual a dois.
    if (i \% 2)
      System.out.println("Oito é divisível por dois");
    else
      System.out.println("Oito não é divisível por dois");

    // Verifica se o nome é Vitor.
    String nome = "Vitor";
    if (nome.equals("Vitor")) {
      System.out.println("Nome é Hachid");
    } else {
      System.out.println("Nome não é Hachid");
    }
  }
}

No primeiro if do exemplo é testado se o valor de i é divisível por 2, ou seja, se valor de i é par. Se for divisível, é impresso o texto Oito é divisível por dois, caso contrário é impresso o texto Oito não é divisível por dois na linha de comando.

No segundo exemplo é feito um teste para saber se a variável String nome é igual a Vitor. Em comparação de objetos sempre usa-se o método equals. Se o valor de nome for Vitor é impresso Nome é Vitor, caso contrário é impresso Nome não é Vitor.

Comando: switch

O comando switch é o mesmo do C e é semelhante ao case do Delphi. Permite selecionar o bloco de código a ser executado baseado no teste lógico de uma expressão. O switch é a forma evoluída para o if, podendo tratar mais de dois blocos de execução.

Sintaxe:

switch ( <expressão> ) {
   case <valor1>:<comandos 1>
   [break;]
   case <valor2>:<comandos 2>
   [break;]
   case <valor3>:<comandos 3>
   [break;]
   case <valor4>:<comandos 4>
   [break;]
   ...
   default: <comandos default>
}

O comando switch executa a expressão e compara o valor encontrado com os valores: , , , etc. Quando encontra a igualdade ele executa o bloco de comandos daquele valor. A execução continuará até o final do switch ou até que ele encontre um break;. Exemplos:

public class ExemploSwitch {
  public static void main(String[] args) {
    int i = 2;
    // Switch que irá imprimir na tela o valor 2
    switch (i) {
      case 1 : System.out.println("Valor de i é 1");
      break;
      case 2 : System.out.println("Valor de i é 2");
      break;
      case 3 : System.out.println("Valor de i é 3");
      break;
      default: System.out.println("Default");
    }

    // Switch que irá imprimir na tela o valor "Hachid"
    String nome = "Vitor";
    switch (nome.hashcode()) {
      case "Vitor".hashCode() : System.out.println("Valor de nome é Hachid");
      break;
      case "Paulo".hashCode() : System.out.println("Valor de nome é Linus");
      break;
      default: System.out.println("Default");
    }
  }
}

Não é necessário utilizar as chaves ({}) para delimitar um bloco de comandos, pois o interpretador executará todos eles até encontrar um break ou o switch finalizar.

A única limitação do switch é que a deve retornar um valor numérico inteiro, qualquer um de seus quatro tipos primitivos. O switch não funciona com String, float, char e boolean por exemplo. E é por este motivo que no segundo switch do exemplo é utilizado o método hashcode (), que retorna um código inteiro único para cada String diferente.

Comando: goto

Há um consenso entre os desenvolvedores de software de que instruções goto devem ser usadas somente para criar estruturas de controle, de seleção ou repetição, caso elas não existam na linguagem trabalhada. E é exatamente por isso que, embora a palavra goto seja uma palavra reservada do Java, ela não pode ser utilizada, o compilador Java acusará erro se encontrá-la no código.

Os especialistas afirmam que o goto polui o código fonte e se não for utilizado adequadamente pode se tornar um problema maior do que o próprio software.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s