Привет У меня проблема с выходом из цикла. Мой вход (он может ввести любое число целого) должен бытьВыход из While (hasNextInt())
Add 10 5 //input then after I press enter it supposed to show the output
Items added: [5, 10] //output
Но вместо этого я получаю
Add 10 5 //enter
Add 2 //I need to enter another input to get the output
Items added: [5, 10] //output
Вот мой код. Я думаю, проблема в том, что после цикла while мне нужно удалить оставшуюся часть строки ввода, но я не знаю, как ее исправить. Пожалуйста, помогите, спасибо
public static void main(String [] args) throws NoSuchElementException {
StackLL <Integer> stack = new StackLL <Integer>();
Scanner sc = new Scanner(System.in);
String op;
while (sc.hasNext()) {
op = sc.next();
if (op.equals("Add")) {
// Fill in the code
while (sc.hasNextInt()){
stack.push(sc.nextInt());
}
System.out.print("Items added: ");
System.out.print(stack.toString() + "\n");
}
else if (op.equals("Query")) {
// Fill in the code
while (sc.hasNextInt()) {
int query = sc.nextInt();
int pop = query - 1;
while (query!=pop)
pop = stack.pop();
}
sc.nextLine();
System.out.println("Query met: " + stack.toString());
}
}
}
добавить 'sc.nextLine()' после вашего нахождения в вашем случае, если – Duffydake
Он по-прежнему не работает. У меня все еще такая же проблема – newb
'while (sc.hasNextInt())' будет ждать, пока у вас есть что-то еще, кроме целого. дважды вызовите 'sc.nextInt()'. Если вы можете иметь более 2 целых чисел, используйте sc.nextLine() и разделите его. – Duffydake