How to use .nextInt() and hasNextInt() in a while loop

The hasNextInt call blocks until it has enough information to make the decision of “yes/no”.

Press Ctrl+Z on Windows (or Ctrl+D on “unix”) to close the standard input stream and trigger an EOF. Alternatively, type in a non-integer and press enter.

Console input is normally line-buffered: enter must be pressed (or EOF triggered) and the entire line will be processed at once.

Examples, where ^Z means Ctrl+Z (or Ctrl+D):

1 2 3<enter>4 5 6^Z   -- read in 6 integers and end because stream closed
                      -- (two lines are processed: after <enter>, after ^Z)
1 2 3 foo 4<enter>    -- read in 3 integers and end because non-integer found
                      -- (one line is processed: after <enter>)

See also:

Leave a Comment