Pessoal, estou fazendo curso de Java, mas o mesmo é só hoje as 10h e eu queria ir além de onde o professor está, dei uma pesquisada e consegui usar o while, porém, existe algo errado pois ele não volta para o local onde eu digo para a pessoa digitar novamente o número, ele apenas aceita a numeração e para por ai… Alguem poderia me ajudar?
importjava.util.Scanner;publicclassControleDeFluxoDesvio2{/** * @param args */publicstaticvoidmain(String[]args){Scannerread=newScanner(System.in);intnumeroMes;numeroMes=2;System.out.println("Digite o número do mês que você gostaria de acessar ");numeroMes=read.nextInt();switch(numeroMes){case1:System.out.println("Mês 1 Janeiro");break;case2:System.out.println("Mês 2 Fevereiro");break;case3:System.out.println("Mês 3 Março");break;case4:System.out.println("Mês 4 Abril");break;case5:System.out.println("Mês 5 Maio");break;case6:System.out.println("Mês 6 Junho");break;case7:System.out.println("Mês 7 Julho");break;case8:System.out.println("Mês 8 Agosto");break;case9:System.out.println("Mês 9 Setembro");break;case10:System.out.println("Mês 10 Outubro");break;case11:System.out.println("Mês 11 Novembro");break;case12:System.out.println("Mês 12 Dezembro");break;}while(numeroMes>12){System.out.println("Repetir o mês: ");numeroMes=read.nextInt();//Preciso que este código volte para a parte onde o system.out pede para a pessoa digitar o mês}}}
Já estudou algoritmos?
Conhece as estruturas de repetição? Para? Enquanto? Repita?
S
Sem_Nome
publicclassTeste{/** * @param args */publicstaticvoidmain(String[]args){Scannerread=newScanner(System.in);intnumeroMes;numeroMes=2;outer:while(true){System.out.println("Digite o número do mês que você gostaria de acessar ");numeroMes=read.nextInt();switch(numeroMes){case1:System.out.println("Mês 1 Janeiro");breakouter;case2:System.out.println("Mês 2 Fevereiro");breakouter;case3:System.out.println("Mês 3 Março");breakouter;case4:System.out.println("Mês 4 Abril");breakouter;case5:System.out.println("Mês 5 Maio");breakouter;case6:System.out.println("Mês 6 Junho");breakouter;case7:System.out.println("Mês 7 Julho");breakouter;case8:System.out.println("Mês 8 Agosto");breakouter;case9:System.out.println("Mês 9 Setembro");breakouter;case10:System.out.println("Mês 10 Outubro");breakouter;case11:System.out.println("Mês 11 Novembro");breakouter;case12:System.out.println("Mês 12 Dezembro");breakouter;default:continue;}}}}
Vamos por partes: eu criei um label para o while. O while(true) vai rodar infinitamente até que receba um break. Todos os meses dão um break no outer. Quando cair em default ele da um continue, ou seja, reinicia o loop while.
Existem formas melhores para se fazer isso mas foi a primeira coisa que me veio a minha cabeça.
E como disse o drsmachado, estude algoritmos.
Scoobydoo
Faz tempo que não programo assim.. mas vou jogar uma ideia nova para você. Se quiser aplicar ou não, fica com sua decisão.
publicclassTeste{/** * @param args */publicstaticvoidmain(String[]args){Scannerread=newScanner(System.in);intnumeroMes=99;Stringmes=verificaValor(numeroMes)}publicstaticstringverificaValor(numeroMes){ArrayList<String>meses=newArrayList<String>();meses.push("Mês 1 Janeiro");meses.push("Mês 2 Fevereiro");meses.push("Mês 3 Março");meses.push("Mês 4 Abril");meses.push("Mês 5 Maio");meses.push("Mês 6 Junho");meses.push("Mês 7 Julho");meses.push("Mês 8 Agosto");meses.push("Mês 9 Setembro");meses.push("Mês 10 Outubro");meses.push("Mês 11 Novembro");meses.push("Mês 12 Dezembro");while(meses[numeroMes-1]==null){System.out.println("Digite o número do mês que você gostaria de acessar ");numeroMes=read.nextInt();}returnmeses[numeroMes-1];}}
drsmachado
Scoobydoo:
Faz tempo que não programo assim.. mas vou jogar uma ideia nova para você. Se quiser aplicar ou não, fica com sua decisão.
publicclassTeste{/** * @param args */publicstaticvoidmain(String[]args){Scannerread=newScanner(System.in);intnumeroMes=99;Stringmes=verificaValor(numeroMes)}publicstaticstringverificaValor(numeroMes){ArrayList<String>meses=newArrayList<String>();meses.push("Mês 1 Janeiro");meses.push("Mês 2 Fevereiro");meses.push("Mês 3 Março");meses.push("Mês 4 Abril");meses.push("Mês 5 Maio");meses.push("Mês 6 Junho");meses.push("Mês 7 Julho");meses.push("Mês 8 Agosto");meses.push("Mês 9 Setembro");meses.push("Mês 10 Outubro");meses.push("Mês 11 Novembro");meses.push("Mês 12 Dezembro");while(meses[numeroMes-1]==null){System.out.println("Digite o número do mês que você gostaria de acessar ");numeroMes=read.nextInt();}returnmeses[numeroMes-1];}}
O problema de quem enfia a cabeça na programação e esquece que um dia foi noob é isso, sempre quer resolver um problema padrão proposto por professores quando se está aprendendo com uma solução extremamente avançada.
Veja que ele está com problemas para entender coisas básicas. Isso me permite compreender que ele ainda não começou a trabalhar efetivamente com orientação a objetos e, está muito, mas muito longe de utilizar coleções.
Essa solução é bem interessante, mas o escopo onde a mesma se aplica não é o mesmo onde o autor do tópico se encontra atualmente.
W
WesleyGiovedi
Muito Obrigado Sem_Nome! =D
Deu para entender certinho! =D