Mini-teste

  1. Dabo:
    public class TesteIgualdade { /** * @param args */ public static void main(String[] args) { float a1 = 1.4F; float[][]a2={{33.0f},{0.8f,1.4f},{1.7f,1.8f}}; float[] a3={1,8f}; Long y = 33L; //insira código aqui System.out.println("true"); } }
    Além dos cinco fragmentos de código:

    if(a3==a2[2])
    if(a1==a2[2][1])
    if(y==a2[0][0])
    if(a1==a2[1,1])
    if(a1==a2)

    Qual opção é correta?
    1. 1 deles compilará e apenas 1 será true.
    2. 2 deles compilarão e apenas 1 será true.
    3. 2 deles compilarão e 2 serão true.
    4. 3 deles compilarão e exatamente 2 serão true.
    5. 3 deles compilarão e apenas 1 será true.
    6. 3 deles compilarão exatamente 3 serão true.
  2. Analise o código abaixo:
    
                    public class Executavel {
    
                    /**
    
                    * @param args
    
                    */
    
                    public static void main(String[] args) {
    
                    Long a=42L;
    
                    Long b=44L;
    
                    System.out.print(" "+7+2+" ");
    
                    System.out.print(ping()+x+5+" ");
    
                    System.out.print(x+y+ping());
    
                    }
    
                    static String ping(){
    
                    return "pong";
    
                    }
    
                    }
                    
    Qual a saída desse programa?
    1. 9 pong47 86pong
    2. 9 pong47 4244pong
    3. 9 pong425 4244pong
    4. 72 pong47 86pong
    5. 72 pong425 4244pong
    6. A compilação falha
    7. 72 pong425 86pong
  3. Com o seguinte código:
    
                    public class Principal {
    
    
    
                    /**
    
                    * @param args
    
                    */
    
                    public static void main(String[] args) {
    
                    for(int x =0;x<4;x++){
    
                    switch(x){
    
                    case 0: System.out.print("1 ");
    
                    case 1: System.out.print("2 ");
    
                    case 2: System.out.print("3 ");
    
                    default: System.out.print("default ");
    
                    }
    
                    }
    
    
    
                    }
    
    
    
                    }
                    
    Qual é o resultado?
    1. 1 2 3 default
    2. 2 3 default 1 2 3 default
    3. 1 2 3 default default
    4. 1 2 3 default 2 3 default 3 default
    5. 1 2 3 default 2 3 default 3 default default

GABARITO COMENTADO

  1. Resposta E

    if(a1==a2[2][1]) -> 1.4F ==0.8F-> false
    if(y==a2[0][0])->33L==33F->true
    if(a3==a2[2])-> Comparando dois arrays unidimensionais -> false

    As outras opções não compilam. A 1ª porque não se pode comparar um array com um número e a 2ª devido a sintaxe está errada.

  2. Resposta G

    A 1ª saída é 72, a 2ª é pong425 e a 3ª é a que merece maior destaque, uma vez que o operador + primeiramente soma 2 números, para depois concatenar e formar uma String. Lembre-se de que a avaliação é sempre feita da esquerda para a direita.

  3. Resposta E

    Toda vez que um case é alcançado, tudo o que estiver abaixo será executado (se não tiver um break). É uma operação em cascata.

  4. Resposta G

    Esse código apresenta erro de compilação porque o que é testado no case não é uma constante em tempo de compilação. Note que o modificador final não está presente na variável y.

Na próxima parte abordaremos mais algumas questões.


Leia todos artigos da série