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