@genbachae

Почему не выполняется код после цикла while?

Запускаю под отладчиком код:

import java.io.*;

public class Program {

    public static void main(String[] args) throws IOException {
        char[] buf;
        buf = new char[9];
        BufferedInputStream bf = new BufferedInputStream(System.in);

        try{
            int i, j, el;
            j = bf.available();
            char c;
            while(((i = bf.read()) != -1) & j > 0) {
                c = (char) i;
                j = bf.available();
                buf[j] = c;
            }
            el = Integer.parseInt(String.copyValueOf(buf));
            System.out.println(el);
        }
        finally{
            bf.close();
        }
    }
}

в консоле набираю например: "123", почему никогда не выполняется код ниже?:

el = Integer.parseInt(String.copyValueOf(buf));

цикл while выполняется без проблем, а далее ничего не происходит.

Почему не выполняется блок кода ниже?

el = Integer.parseInt(String.copyValueOf(buf));
            System.out.println(el);
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
BorLaze
@BorLaze
Java developer
А в условии цикла while(((i = bf.read()) != -1) & j > 0)
точно нужен битовый AND (&), а не логический (&&)?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы