Dúvidas sobre exercício MixFor5 do livro Use a Cabeça - Java (página 89) [Resolvido]

6 respostas
tgmangolini

Olá pessoal,

Estou estudando Java por meio do Livro “Use a Cabeça” e emperrei no exercício abaixo.

O exercício pede para dizer qual será a saída para o código, a seguir, e a saída é x=54 e y=6.
Retirei if (x == 6){ break;} e reparei que o resultado é o mesmo: x=54 e y=6. Então, a minha pergunta é, porque a condicional está sendo “ignorada”? Ou seja, por que apesar de ter este “break” continua executando? Afinal, qual é a finalidade desse “break” neste código? Alguém poderia me ajudar a entender?

class MixFor5 {

public static void main (String[] args) {

int x = 0;

int y = 30;

for (int outer = 0; outer < 3; outer++){

for (int inner = 4; inner > 1; inner) {	

x = x + 3;

y = y - 2;

if (x == 6){

break;

}

x = x + 3;

}

y = y - 2;				

}

System.out.println("x= " +x + " y= " +y);			

}

}

6 Respostas

lucasportela

Vou lhe ajudar identando seu código para facilitar o entendimento dele, para que outros possam te ajudar

class MixFor5 { public static void main (String[] args) { int x = 0; int y = 30; for (int outer = 0; outer < 3; outer++){ for (int inner = 4; inner > 1; inner--) { x = x + 3; y = y - 2; if (x == 6){ break; } x = x + 3; } y = y - 2; } System.out.println("x= " +x + " y= " +y); } }

Ivan_Alves

“break” serve para interromper o loop ou seja ele irá sair do loop que você está no momento!

tgmangolini

Obrigada por identar meu código :oops:
Mas, pelo que eu entendi o “break” não está funcionando, pois independente dele estar no código ou não, o resultado exibido é o mesmo… é isso que eu estou tentando entender…

X

Simples, dentro do segundo Loop (for) ele aplica x = x + 3.

Logo depois da condição [if (x==6)] ele aplica, x = x + 3.

Assim x nunca será 6 na condição if.

Se vc tirar após a condição o x = x + 3, com certeza o valor irá ser alterado…

Se eu tiver erro, por favor falem !

tgmangolini

Hum… é isso mesmo! : :roll:
Obrigada…

lucasportela

xxgiovannixx ,

isso mesmo, x nunca será igual a 6

pois a cada loop ele soma + 6, então quando ele estiver no segundo loop ele irá somar +3 no começo (x = 9) e pergunta se x==6, após isso o valor de x só irá aumentar

Criado 12 de agosto de 2011
Ultima resposta 12 de ago. de 2011
Respostas 6
Participantes 4