Como faço para o programa retornar a pergunta ao usuário.
import java.util.Scanner;
public class NumeroDecrescente {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Informe um número inteiro maior que 1: ");
int n = scan.nextInt();
if (n < 1) {
System.out.println("Você digitou um número menor a 1, por favor digite novamente");
while (true) {
System.out.print("Informe um número inteiro maior que 1: ");
int n = scan.nextInt();
if (n <= 1) {
System.out.println("Você digitou um número menor/igual a 1, por favor digite novamente.");
} else {
for (int i = 0; n >= i; n--) {
System.out.println(n);
} break;
}
}
}
Caso você não queira deixar em loop infinito você pode fazer assim:
public static void main(String[] args) {
boolean x = true;
while (x == true) {
System.out.print("Informe um número inteiro maior que 1: ");
Scanner ler = new Scanner(System.in);
int n = ler.nextInt();
if (n <= 1) {
System.out.println("Você digitou um número menor/igual a 1, por favor digite novamente.");
} else {
for (int i = 0; n >= i; n--) {
System.out.println(n);
}
System.out.println("\nVocê deseja digitar outro número? \n1- Sim \n2- Não");
int y = ler.nextInt();
if (y == 2) {
x = false;
}
} // break;
}
}
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 ?
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");
int y = ler.nextInt();
if (y != 1 && y!=2) {
System.out.println("Digitou um número incorreto, por favor digite novamente.");
Eu consegui fazer assim, mas pode ter um modo mais fácil pois também sou iniciante na programação.
public static void main(String[] args) {
boolean x = true;
boolean z = true;
while (x == true) {
System.out.print("Informe um número inteiro maior que 1: ");
Scanner ler = new Scanner(System.in);
int n = ler.nextInt();
if (n <= 1) {
System.out.println("Você digitou um número menor/igual a 1, por favor digite novamente.");
} else {
for (int i = 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");
int y = 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;
}
}
}