пользовательский ввод проверяет только int
Я пытаюсь, чтобы мой пользовательский ввод не приводил к сбою моей программы, ограничивая то, что пользователь может вводить, например:
only being an int being between 1-30Код, который я написал, работает только до определенного момента. Если вы введете что-то, что не является int, оно проверит это и попросит вас войти снова. Опять же, если вы продолжаете печатать что-либо, кроме int. У меня есть другой цикл while, если он вводит тип int, и если он выходит за пределы зоны 1-30, тогда он попросит пользователя ввести снова. Однако после этого, если пользователь вводит другое "что-нибудь, кроме int" программа вылетит. Я пытался объединить обаsc.hasnextint()
и проверка ввода между 1-30 условием, но если я положуsc.nextint()
передsc.hasnextint()
и пользователь вводит что угодно, кроме int, программа вылетает. Если я поставлю его после цикла condtion, то пользовательский ввод не будет объявлен.
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();