Boa tarde, pessoal. Começando a programar e dentre várias dúvidas, uma fez travar meu código:
Se houver uma condição “if” dentro de um loop “for” e tal condição não for respeitada, como faço para que volte a leitura do código para o último loop feito? Por exemplo, usando a classe Scanner para a introdução de números de 0 a 10, o usuário pode inserir o numero 12 e a condição de 0 a 10 não será respeitada, portanto o usuário deve inserir novamente no campo destinado àquele número inserido erradamente com um outro de 0 a 10, agora podendo seguir o código.
Nesse caso você usou um switch e para caso a escolha do sexo não for M, nem F, ele retornaria o Scanner para o usuário inserir de novo, certo? Se for isso, será que não tem outra forma de retomar o Scanner em vez de um switch?
staroski
Claro que tem, isso foi só um exemplo, é só você adaptar o código para a sua necessidade.
Exemplo:
importjava.io.PrintStream;importjava.util.Scanner;publicclassPrograma{privatestaticfinalScannerENTRADA=newScanner(System.in);privatestaticfinalPrintStreamSAIDA=System.out;publicstaticvoidmain(String[]args){try{Programaprograma=newPrograma();programa.executar();}catch(Throwablet){t.printStackTrace();}}publicvoidexecutar()throwsException{for(inti=0;i<20;i++){// um loop qualquerintnumero=lerNumero(0,10);SAIDA.println("Numero digitado: "+numero);}}privateintlerNumero(intde,intate){while(true){// enquando não digitar um número válido, vai ficar repetindoSAIDA.print("Digite um numero entre "+de+" e "+ate+": ");intnumero=Integer.parseInt(ENTRADA.nextLine());if(numero>=de&&numero<=ate){returnnumero;}SAIDA.println("Numero inválido: "+numero);}}}
zepolik
No código que estou tentando usei o Scanner para inicializar cada termo de um Array, e na condição não respeitada tentei usar o mesmo do seu código: return Nome_Array[n], mas nada funcionou. O que eu poderia fazer?