Endlosschleife Java?

DerMusiker11001  13.12.2021, 13:50

Also eine Benutzereingabe in der Schleife?

poppypearl 
Fragesteller
 13.12.2021, 13:50

jap genau

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Scanner scanner = new Scanner(System.in);

while (true) {
  String echo = scanner.nextLine();
  System.out.println(echo);
}
Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

Du kannst abfragen, "während das gegebene richtig ist, wiederhole". Korrekt würde es sein: while true

Also:

Scanner input = new Scanner(System.in);
while(true)
{
  // Irgendein Code, der sich wiederholen soll z.B.
  System.out.println("User Input " + input.nextLine());
}

While wiederholt sich solange, bis true zu false wird. Da true aber ein Wert ist und keine Variable, wird dieser sich niemals ändern und ist somit endlos


regex9  13.12.2021, 16:26

Das Scanner-Objekt sollte besser außerhalb der Schleife angelegt werden, denn nur ein einziges ist notwendig. Speicher muss so nicht mehrmals reserviert werden.

1
FaTech  13.12.2021, 16:27
@regex9

Stimmt, danke für die Anmerkung, habe es überarbeitet

2

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner s = new Scanner (System.in);

String eingabe;

while(true)

{

System.out.println("Gib was ein.");

eingabe=s.next();

}

Hast du dir sowas vorgestellt? Die Schleife nimmt nie ein Ende, weil i nicht hochgezählt wird und in der Schleife ist ne Benutzereingabe.

Woher ich das weiß:Studium / Ausbildung – Staatlicher geprüfter Informatiker

FaTech  13.12.2021, 13:56

Die Schleife nimmt ein Ende, weil i = 0 und die Schleife geht nur, wenn i >= 1 ist. Dazu ist dies viel zu kompliziert. Dafür würde ein einfacher boolean ausreichen

0
while(true) {
Scanner scannervariable = new Scanner(System.in);
}

Du könntest auch eine for-Schleife nutzen:

for (;;) {
    // ...
}