Программа должна вычислять непрерывно до тех пор, пока пользователь не введет символ

А программа сначала запрашивает символ и затем по символу не останавливается. Не могу понять что не так

    System.out.println("Для остановки нажмите клавишу 'S'");
    for (int i = 0; (char) System.in.read() != 'S'; i++) {
        System.out.println("Проход № " + i);

    }

Ответы (1 шт):

Автор решения: Ангелина Никонова

Рабочий пример:

System.out.println("Для остановки нажмите клавишу 'S'");
Scanner scanner = new Scanner(System.in);
// Проверяем, является ли входной массив символом, массивом с символом 'S' 
for (int i = 0; !Arrays.equals(scanner.next().toCharArray(), new char[]{'S'});) {
   System.out.println("Проход № " + ++i);
}

Более адекватный пример:

System.out.println("Для остановки нажмите клавишу 'S'");
Scanner scanner = new Scanner(System.in);
int counter = 0;
String input;
// Проверяем, есть ли строка, если есть и ее длина 1, а так же начинается с 'S', то false 
while (scanner.hasNext() && !((input = scanner.nextLine()).length() == 1 && input.startsWith("S"))) {
    System.out.println("Проход № " + ++counter);
}
→ Ссылка