Ну, вы делаете несколько вещей неправильно. Помимо очевидного (вы поймете неправильное исключение, как вы выяснили), вы не выполняете цикл должным образом, а также не можете использовать nextInt()
.
Посмотрите на свои требования. Вы сказали:
программа, которая принимает пользовательские целочисленные входные данные и что-то делает с ними, и продолжает делать это, пока пользователь не введет нецелочисленный ввод, после чего у пользователя больше не будет запрашиваться для ввода.
Если вы используете nextInt()
, как вы найдете любой нецелочисленный ввод? Очевидно, вам нужно сделать что-то еще здесь.
Попробуйте разбить программу на более мелкие куски. Вы могли бы ввести методы, которые сделают вашу работу проще и понятнее.
public class Question2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
boolean active = true;
String num_string_positive = "";
String num_string_negative = "";
int my_int;
while (active) {
// Get input
String input = getInput();
// Is input integer?
active = isInteger( input );
// If integer do something
if( active ) {
// something
}
}
}
}
Если вы начнете с того, что набросаете свой код, например, с какого-то наброска, то у вас будет меньше проблем. Разбиение вашего кода на более мелкие фрагменты облегчает чтение, запись, понимание и отладку. В основном побеждает все вокруг.