Почему программа срабатывает именно так?
Учусь java по книге Шилдта - в книге приведен программка-пример
public class HelloWorld {
public static void main(String[] args)
throws java.io.IOException {
int i;
System.out.println("Для остановки нажмите клавишу s");
for (i = 0; (char) System.in.read() != 's';
i++)
System.out.println("Введите верную букву");
}
}
Программа просит в консоли ввести букву "s". Если вводишь s то она завершает работу, а если вводишь неверную букву то в консоли 2 раза выводится надпись "Введите верную букву Введите верную букву"
Вот и вопрос - а почему она 2 раза выводится?, а не один или не бесконечно, так как инкремент то неограничен каким-либо условием типа i<5? И значение i меняю на любое другое и программа все равно работает. Почему - я не понимаю?
Буду благодарен если популярно по шагам объясните что и как тут работает?
Ответы (1 шт):
это связано с тем , что программа читает по символьно. То есть 1 раз она читает введенный символ а потом просит его ввести. Если ввести 4 символа то 5 раз будет обрабатываться цикл for.Таким образом он будет высвечивать при вводе n числа символов, будет высвечиваться n+1 строк. Так как цикл будет читать каждый новый символ в новом "круге" цикла.