2015-06-12 5 views
-2

Проблема:Java; в то время как цикл

Рассмотрим эту последовательность данных: "3 11 5 5 5 2 4 6 6 7 3 -8". Любое значение, которое совпадает с предыдущим значением, считается СООТВЕТСТВУЮЩИМ ДУБЛИКАТОМ. В этом примере есть три таких последовательных дубликата: 2-й и 3-й 5-й и второй 6. Обратите внимание, что последние 3 не являются последовательным дубликатом, потому что ему предшествовал 7. Напишите код, который использует цикл для чтения такого последовательность неотрицательных целых чисел, заканчивающихся отрицательным числом. Когда код завершает выполнение, печатается количество последовательных дубликатов. В этом случае 3 будет напечатано.

Правильный ответ:

int firstNumber, secondNumber, duplicates; 
secondNumber = duplicates = 0; 
firstNumber = stdin.nextInt(); 
while (stdin.hasNextInt() && firstNumber > 0 && secondNumber > 0) 
{ 
    secondNumber = stdin.nextInt(); 
    if (firstNumber == secondNumber) 
    { 
       duplicates++; 
    } 
    firstNumber = secondNumber; 
} 
System.out.println(duplicates); 

Мой вопрос:

Почему stdin.nextInt() используется, когда у вас уже есть stdin.hasNextInt()?

+3

Потому что 'hasNextInt' определяет, имеет ли смысл использовать' nextInt'. –

ответ

3

«hasNextInt()» - это функция, которая возвращает логическое значение с целью определения наличия в структуре данных другого элемента. Если он возвращает true, имеет смысл повторить цикл while.

'nextInt()' возвращает следующий int в структуре данных для использования.

+0

Это правильный ответ, почему downvote? – mcraen

+0

Кажется, гораздо лучше подходит для комментариев, в основном потому, что вы не совсем объясняете, почему вы используете оба варианта, что является актуальным вопросом. – Matthew

+0

@ Матвеев не согласен. Он ответил на вопрос, не зная, почему он будет в комментариях здесь –

0
stdin.hasNextInt() 

Просто возвращает true, если существует целочисленное значение, готовое для чтения.

Это возвращает ложь, если нет значения готово, например, если нет больше пользовательского ввода для чтения

0

hasNextInt возвращает логическое значение, то есть, существует ли следующий номер или нет. Поэтому, если есть следующий номер, вы можете позвонить nextInt, чтобы получить его.

Смежные вопросы