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

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);
}
}

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); } }

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

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…

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 !

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

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