Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

While dentro de While

Opa, boa noite galera! Tô com uma dúvida, consegui executar o meu programa mas não tá saindo exatamente como eu gostaria. Fiz um programa de tabuada usando a repetição While.

public class TestaLacosWhile {

    public static void main(String[] args) {

        int contador = 0;
        int multiplicador = 1;
        System.out.print("Tabuada de " + multiplicador + ": ");
        while (multiplicador <= 10) {
            while (contador <= 10) {
                //Comandos do segundo while
                System.out.print(multiplicador * contador);
                System.out.print(" ");
                contador++;
            }
        //Comandos do primeiro While
        System.out.println();
        multiplicador++;
        contador = 0; //Resetar o valor de contador
        System.out.print("Tabuada de " + multiplicador + ": ");
        }
    }
}

Só que no resultado sai assim:

Tabuada de 1: 0 1 2 3 4 5 6 7 8 9 10  
Tabuada de 2: 0 2 4 6 8 10 12 14 16 18 20  
Tabuada de 3: 0 3 6 9 12 15 18 21 24 27 30  
Tabuada de 4: 0 4 8 12 16 20 24 28 32 36 40  
Tabuada de 5: 0 5 10 15 20 25 30 35 40 45 50  
Tabuada de 6: 0 6 12 18 24 30 36 42 48 54 60  
Tabuada de 7: 0 7 14 21 28 35 42 49 56 63 70  
Tabuada de 8: 0 8 16 24 32 40 48 56 64 72 80  
Tabuada de 9: 0 9 18 27 36 45 54 63 72 81 90  
Tabuada de 10: 0 10 20 30 40 50 60 70 80 90 100  
Tabuada de 11: 

Sabem como fazer para que não apareça esse "Tabuada de 11"? Até tentei encadear um if dentro do primeiro While pra só executar os comando do primeiro While se o multiplicador for menor que 11 mas não funcionou.

2 respostas
solução

Olá Gabriel, tudo bem? Teu código esta muito bom, basta uma pequena alteração e consegue teu resultado, veja a sugestão abaixo:

public class Main
{
    public static void main(String[] args) {
          int contador = 0;
        int multiplicador = 1;
        while (multiplicador <= 10) {
            System.out.print("Tabuada de " + multiplicador + ": ");
            while (contador <= 10) {
                //Comandos do segundo while
                System.out.print(multiplicador * contador);
                System.out.print(" ");
                contador++;
            }
        //Comandos do primeiro While
        System.out.println();
        multiplicador++;
        contador = 0; //Resetar o valor de contador
        }
    }
}

Se esta solução ficou legal para você pode por favor marcar como solucionado. Se ficar com dúvida ainda poste aqui! Um abraço.

Muito obrigado pela ajuda Marco Antonio :D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software