[Resolvido] ajuda com laços do while

ola pessoal queria saber como fazer um calendario mostrando dia mes e ano usando while
obs: todos os meses podem ter 30 dias
olha o codigo que eu estava tentando:

class lacoAninhado{ public static void main(String[] args){ int dia = 0; int mes = 0; int ano = 2012; while(ano <= 2014){ while(mes <= 12){ while(dia <= 30){ System.out.println(dia);System.out.println(mes);System.out.println(ano); dia++; }mes++; }ano++; } } }

Quase certo. Só que você não pode inicializar as variáveis uma vez só.

public class LacoAninhado{ public static void main(String[] args){ int ano = 2012; while(ano &lt;= 2014){ int mes = 0; while(mes &lt;= 12){ int dia = 0; while(dia &lt;= 30){ System.out.println(dia);System.out.println(mes);System.out.println(ano); dia++; } mes++; } ano++; } } }

Melhor ainda seria usar 3 fors.

PS: Sim, meu código ainda reteve outros bugs da sua implementação. Mas estou deixando para você resolver por conta própria.

entao ViniGodoy
este codogo fez o mesmo efeito do meu
so deu o loop no ano mas o mes e o dia nao continuou repetindo!!!
se pudesse me ajudar???
estou tentando fazer um exercicio da apostila caelum
depois de fazer os lacos eu vou dar nomes a eles
com labeled loops

meio fora do assunto:
de uma olhada nesse link para ver se vc concorda com o que eu postei:

ps:vc tambem postou neste enquete

Funcionou perfeitamente aqui. Você tem certeza que rodou ou leu a saída direito?

Veja como fica melhor com for:

public class LacoAninhado { public static void main(String[] args) { for (int ano = 2012; ano &lt;= 2014; ano++) { for (int mes = 1; mes &lt;= 12; mes++) { for (int dia = 1; dia &lt;= 30; dia++) { System.out.printf(&quot;%d/%d/%d%n&quot;, dia, mes, ano); } } } } }

muito obrigado
com o for funcionou o mes e o dia;
mas o ano continua somando somente o numero final.

muito grato pela ajuda
:smiley:

Fabinho, acho que é porque os demais anos estão passando muito rápido, e você não está conseguindo ver eles.

Mas eles estão lá.

e vdd acho que é por que eu uso o cmd para executalo
e o cmd so mostra uma quantidade da execuçao;
aqui so da pra ver do dia 3/3/2014 pra frente/
mas nao faz sentido o resto nao ter executado mesmo

ps: so o for funcionou o while não!!

[quote=ViniGodoy]Quase certo. Só que você não pode inicializar as variáveis uma vez só.

public class LacoAninhado{ public static void main(String[] args){ int ano = 2012; while(ano &lt;= 2014){ int mes = 0; while(mes &lt;= 12){ int dia = 0; while(dia &lt;= 30){ System.out.println(dia);System.out.println(mes);System.out.println(ano); dia++; } mes++; } ano++; } } }

Melhor ainda seria usar 3 fors.[/quote]

Com esse código funcionou perfeitamente aqui.

testando agora funcionou
o que eu estava fazendo de errado???

me desculpem pessoal!!!
nao sei o que aconteceu!

mas a ajuda foi muito bem vinda
inclusive com o codigo do FOR

(y)