Я пытаюсь понять поведение функции available()
. Я не понимаю, почему работает первый сегмент кода, и после того, как я добавил оператор if
внутри цикла while
, он больше не работает.
Вот коды: Первый:
while (is.available() > 0) {
int x1 = is.readInt();
int y1 = is.readInt();
int x2 = is.readInt();
int y2 = is.readInt();
System.out.println("x1 = " + x1);
System.out.println("y1 = " + y1);
System.out.println("x2 = " + x2);
System.out.println("y2 = " + y2);
Second One:
while (is.available() > 0) {
int x1 = is.readInt();
if(x1 < -10000) {
x1 = is.readInt();
}
int y1 = is.readInt();
int x2 = is.readInt();
int y2 = is.readInt();
System.out.println("x1 = " + x1);
System.out.println("y1 = " + y1);
System.out.println("x2 = " + x2);
System.out.println("y2 = " + y2);
В первом цикле while все в порядке и функция available()
всегда будет возвращать некоторое число, в то время как есть входные данные для чтения. Но второй всегда возвращает 0.