Exercício listar múltiplos de 3 entre 1 e 100. Alguém me explica porque o código não funciona?
for(int num = 1; num <= 100 && num % 3 == 0; num++) {
System.out.println(num);
}
Já consegui solucionar, mas tive jogar um if
para dar certo.
for(int num = 1; num <= 100; num++) {
if(num % 3 == 0) {
System.out.println(num);
}
}
1 curtida
O teste aplicado dentro do for
é a regra de iteração do laço, como o contador do laço é iniciado com valor 1 e 1 não é múltiplo de 3, a condição não é atendida e o laço não faz nenhuma iteração!
Porém quando o teste é feito internamente, a regra do laço fica sendo percorrer os valores de 1 à 100, por isso funciona!
Para manter tudo no laço você poderia fazer da seguinte forma:
for (int num = 3; num <= 100 && num % 3 == 0; num += 3) {
System.out.println(num);
}
1 curtida
o seu primeiro for não da certo por causa da regra do seu for, a primeira parte é criação e atribuição de valores das variáveis, a segunda é o teste logico para parar o for(aqui onde está o problema), a terceira a iteração.
para o número ficar no for ele obrigatoriamente no seu tem que ser menor ou igual a 100 e ser múltiplo de 3, diferente disso ele vai encerrar o for.
o seu for pra dar certo seria.
for(int num = 3; num <= 100; num+=3) {
System.out.println(num);
}
nesse caso que coloquei ele percorre a lista de 3 em 3 e imprime os valores do número 3,6,9, etc.