Pętla for () wykonana x3

0

Witam,
zaczynam naukę podstaw Javy. Obecnie napotkałem problem z pętlą for (), która w przypadku gdy warunek ma wartość true wykonuje instrukcje od razu trzykrotnie. Poniżej przykład:

class ForTest {   
  public static void main(String args[])   
    throws java.io.IOException { 
 
    int i; 
 
    System.out.println("Wprowadź S aby zakończyć."); 
 
    for(i = 0; (char) System.in.read() != 'S'; i++) 
      System.out.println("Przebieg " + i); 
  }   
}

W przypadku wprowadzenia innej litery niż "S" czyli warunek = true, zwracana jest wartość:
Przebieg 0
Przebieg 1
Przebieg 2

Dlaczego nie jest zwracany pojedynczy komunikat Przebieg 0, tylko od razu 3 komunikaty?
Gdzie popełniam błąd?

3

Nie popełniasz błędu po prostu nie da się wprowadzić dokładnie jednego znaku z klawiatury, ale zawsze co najmniej dwa: znak plus enter.

class ForTest {
    public static void main(String args[])
            throws java.io.IOException {
        int i;
        System.out.println("Wprowadź S aby zakończyć.");
        int input=' ';
        for (i = 0; (char) (input = System.in.read()) != 'S'; i++)
            System.out.println("Przebieg " + i + " znak = "+ input);
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1