Dúvida nos exercícios 2 e 3 do capitulo 4 do livro da Kathy Sierra (java 6)

4 respostas
vinihds

Boa noite para todos…to estudando o livro da Kathy Sierra e estou com duas duvidas nos exercicios 2 e 3 do capitulo 4.

Exercico 2:

Nesse exercicio…o livro fala que o F1, F3 e F5 serão compilados mas somente o F3 é true…mas pelo que eu vi o F2, F3 e o F4 são compilados porem são o F3 e o F4 são true.

Onde eu estou errando ?

public class Teste {

	public static void main(String[] args) {
		float f1=2.3f;
		float [][] f2 = {{42.0f},{1.7f,2.3f},{2.6f,2.7f}};
		float [] f3 = {2.7f};
		Long x = 42L;
                //insira o codigo aqui
                System.out.println("true");
        }
}


F1.      if (f1==f2)
F2.      if (f1==f2[2][1])
F3.      if (x == f2[0][0])
F4.      if (f1 == f2[1][1])
F5.      if (f3 == f2[2])

Exercicio 3:
Se eu chamar a linha de comando (java Fork live2) da classe abaixo qual deve ser o resultado ?
Segundo o livro esse programa deveria gerar uma exceção…mas pelo q eu vi ele gera o seguinte resultado: “production Fork”…to errado ?

public class Args {

	public static void main(String[] args) {
		
		if (args.length == 1 | args[1].equals("teste")){
			System.out.println("teste case");
		}else{
			System.out.println("production "+args[0]);
		}

	}

}

4 Respostas

pmlm

Pelo código que tens, todos compilam menos o 1.
O 3 e o 4 são true.
Não te enganaste a copiar o código?

Se a tua classe se chama Args não existe a classe Fork invocada na linha de comando…

charlesbraw

Realmente o exercicio que pede para fazer : java Fork live2, não vai funcionar porque sua classe não se chama Fork.

Agora, se a você mudar o nome da classe para Fork, ou fazer java Args live2 terá uma exceção.

Essa linha: if (args.length == 1 | args[1].equals("teste")){

verifica o tamanho do args, como o operador não é um operador curto circuito (&&,||) ele vai avaliar as 2 expressões, sendo assim aou fazer args[1].equals(“teste”), lançará um ArrayIndexOutOfBoundsException, pois vetor args só tem a primeira posição (live2).

Operadores | e & sempre avaliam as duas expressões mesmo se:
| encontrar verdadeiro na esquerda, ele avalia a direta.
& encontrar false na esquerda, ele avalia a direita.

o que não acontece com || e && respectivamente.

vinihds

Agora eu entendi o exercicio 3…

eu pensei que o parametro era esse: java Fork live2, ou seja, java estava na primeira posição do vetor, Fork na segunda e live2 na terceira

valeu

F

ex3 no livro a classe chama-se Fork e nao Args.

Criado 11 de outubro de 2010
Ultima resposta 14 de out. de 2010
Respostas 4
Participantes 4