entrada de usuário check int only
Estou tentando fazer com que a entrada do meu usuário não trava o meu programa restringindo o que o usuário pode inserir, como:
sendo apenas um intestar entre 1-30O código que escrevi funciona apenas até certo ponto. Se você digitar algo que não seja um int, ele irá verificar e pedir para você entrar novamente. Então, novamente, se você continuar digitando qualquer coisa, mas um int. Eu tenho outro loop while se ele digitar um int, e se ele estiver fora da zona 1-30, ele pedirá ao usuário para entrar novamente. No entanto, depois disso, se o usuário digitar outro "nada, mas um int", o programa irá falhar. Eu tentei combinar tanto osc.hasnextint()
e a verificação de entrada entre 1-30 condição, mas se eu colocar osc.nextint()
antes de osc.hasnextint()
e o usuário insere qualquer coisa, menos um int, o programa trava. Se eu colocá-lo após o loop de condição, a entrada do usuário não será declarada.
int choose;
System.out.print("type an integer: ");
Scanner sc=new Scanner(System.in);
while (!sc.hasNextInt() ) {
System.out.println("only integers!: ");
sc.next(); // discard
}
choose=sc.nextInt();
while (choose<=0 || choose>30)
{
System.out.print("no, 1-30: ");
choose=sc.nextInt();
}
sc.close();