#java
Пример из книги: import java.io.IOException; public class Test { public static void main(String[] args) throws IOException { int i; System.out.println("15 см"); for(i = 1; (char) System.in.read() !='S'; i++){ System.out.println("Проход " + i); } } } Помогите разобрать этот код. Я продебажил посмотрел как отрабатывает, но не понял почему после введённого числа выдает 2 раза "Проход" + i При вводе символа: s, выдает в консоли: Проход 1, Проход 2, почему 2 то?
Ответы
Ответ 1
Если вкратце, то если вы введёте в консоль какой-то символ и нажмёте Enter, то будет считано два значения: сам символ и символ перевода строки (\n) В этом можно убедиться, посмотрев что возвращает System.in.read() на каждой итерации цикла: char ch; for (i = 1; (ch = (char)System.in.read()) != 'S'; i++) { System.out.println("Char code: " + (int)ch); System.out.println("Проход " + i); } При вводе a результат будет таким: Char code: 97 Проход 1 Char code: 10 Проход 2
Комментариев нет:
Отправить комментарий