Доброго времени суток.
Предполагалось, что программа будет проверять наличие следующего вводимого числа, и, если оно существует, то присваивать его переменной х. На деле же переменной присваивается не первое проверенное число, а следующее.
Пример входных данных:
14
11
19
9
ENTER.
Программа проверяет, что следующее вводимое число 14 существует, и затем присваивает переменной х не 14, а 11.
Я знаю, что можно переписать программу по другому, но в данном случае мне просто интересно, почему вообще это так работает? И есть ли у сканнера метод, позволяющий не перескакивать на следующее число (11), а присвоить проверяемое (14)?
Заранее благодарю за ответ
package com.javarush.task.pro.task04.task0403;
import java.util.Scanner;
/*
Суммирование
*/
public class Solution {
public static void main(String[] args) {
//напишите тут ваш код
Scanner console = new Scanner(System.in);
int x0 = 0;
int x;
boolean isEnter = false;
while (!isEnter)
{
isEnter = console.hasNextLine() ? (console.nextLine()).equals("ENTER") : false;
x = console.hasNextInt() ? console.nextInt() : 0;
System.out.println(x);
x0 = x0 + x;
}
System.out.println(x0);
}
}