Como faço para o programa retornar a pergunta ao usuário.
importjava.util.Scanner;publicclassNumeroDecrescente{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.print("Informe um número inteiro maior que 1: ");intn=scan.nextInt();if(n<1){System.out.println("Você digitou um número menor a 1, por favor digite novamente");
Se seu objetivo é deixar ele em loop e sempre voltar para a mensagem “Informe um numero inteiro maior que 1” é só tirar o break;
K
KPS2 likes
Caso você não queira deixar em loop infinito você pode fazer assim:
publicstaticvoidmain(String[]args){booleanx=true;while(x==true){System.out.print("Informe um número inteiro maior que 1: ");Scannerler=newScanner(System.in);intn=ler.nextInt();if(n<=1){System.out.println("Você digitou um número menor/igual a 1, por favor digite novamente.");}else{for(inti=0;n>=i;n--){System.out.println(n);}System.out.println("\nVocê deseja digitar outro número? \n1- Sim \n2- Não");inty=ler.nextInt();if(y==2){x=false;}}// break;}}
D
David_Oliveira2
Boa KPS!
Uma outra dúvida, caso na última etapa o usuário coloque outro número diferente de 2 (3,4,5 e etc) e que não seja o número 1 ele continuará o sistema, como você resolveria esse bug, com ouutro if ?
K
KPS
Se você quiser que o programa pare caso ele digite algo diferente de 1 pode substituir essa parte:
if(y==2){
x=false;}
por:
if(y==1){
x=true;}else{
x=false}
ai tudo que o usuário digitar sem ser 1 vai fazer com que o programa pare.
D
David_Oliveira2
Acho que me expliquei mal. Eu quero se caso o usuário digite um número diferente de 1 e 2 o programe mostre o erro e volta a fazer a pergunta.
Eu tentei fazer umas mudanças:
Eu queria que depois daqui:
System.out.println("\nVocê deseja digitar outro número? \n1- Sim \n2- Não");inty=ler.nextInt();if(y!=1&&y!=2){
System.out.println("Digitou um número incorreto, por favor digite novamente.");
ele recebesse o ler.nextInt novamente…
K
Solucao aceita
KPS1 like
Eu consegui fazer assim, mas pode ter um modo mais fácil pois também sou iniciante na programação.
publicstaticvoidmain(String[]args){booleanx=true;booleanz=true;while(x==true){System.out.print("Informe um número inteiro maior que 1: ");Scannerler=newScanner(System.in);intn=ler.nextInt();if(n<=1){System.out.println("Você digitou um número menor/igual a 1, por favor digite novamente.");}else{for(inti=0;n>=i;n--){System.out.println(n);z=true;}while(z==true){System.out.println("\nVocê deseja digitar outro número? \n1- Sim \n2- Não");inty=ler.nextInt();if(y!=1&&y!=2){System.out.println("\nDigitou um número incorreto, por favor digite novamente.");z=true;}else{if(y==2){x=false;z=false;}else{z=false;}}}// break;}}}