Java Code geht nicht?

6 Antworten

  1. Klassennamen beginnen mit einem Großbuchstaben (Main), Variablennamen mit einem Kleinbuchstaben (eingabe). Vermische dies nicht, so kann man sie besser auseinanderhalten.
  2. Bezeichner sollten eindeutige, sinnvolle Namen bekommen. Bestenfalls in einer Sprache (z.B. Englisch).
  3. Wenn du einen Scanner anlegst, schließe sie ihn, wenn er nicht mehr benötigt wird (close).
  4. Wie schon andere geschrieben haben, ist while an dieser Stelle nicht gut gewählt. Sollte die Bedingung erfüllt werden, gibt es innerhalb der Schleife keinen Programmzweig, der die Schleife wieder abbrechen würde (bspw. durch Änderung des Wertes von a oder b). Verwende besser if, einmal die Werte zu vergleichen reicht hier völlig.
  5. Das die Bedingung prinzipiell nicht zutrifft, ist eindeutig.
  6. Die Deklaration der Variable eingabe kann man in den Code-Block von (nun) if hineinziehen, denn sie wird derzeit nur in diesem verwendet.

Endresultat (mit englischen Bezeichnern):

public class Main {
  public static void main (String[] args) {
    int numberOne = 10;
    int numberTwo = 0;

    if (numberOne < numberTwo) {
      Scanner reader = new Scanner(System.in);
      String input = reader.next();

      if ("Hallo".equals(input)) {
        System.out.println("Hallo");
      }

      reader.close();
    }
  }
}

while a < b

a wird auf 10 gesetzt und nie verändert

b wird auf 0 gesetzt

Deine Bedingung (a < b) ist niemals wahr. Daher wird die Schleifenkörper niemals betreten.

Versuch doch mal while (true)

Gruß

27
Versuch doch mal while (true)

Nein, versuche das nicht. Ganz schlechter Programmierstil.

0
35
@milos2

"Um Gottes Willen man". Der FS ist doch blutiger Anfänger und will nur mal nen Ergebnis sehen.

Wie er die Endlosschleife durch was Sinnvolleres ersetzt kann er dann im nächsten Schritt lernen. Erstmal verstehen was ne Schleife macht.

Gruß

0
29
@milos2

"while(true)" sei schlechter stil.

Was bedeutet, man solle es nicht benutzen.

0
20

man KÖNNTE sowas machen : X: while(true){ ... if("hallo".equals(Eingabe)){ .... break X; } } Variablen (Eingabe) sollte man lieber klein schreiben

0
35
@AlexByJava

nun, while(true) mit break erachte ich dann allerdings schon als schlechten Stil. Das kann schließlich durch eine sinnvolle Schleifenbedingung ersetzt werden.

Ist für den FS aber auch völlig unerheblich.

break X;

gibt es übrigens nicht...

0
27
@AlexByJava

Nein, du hast Dir beim Erstellen der Schleife keine Gedanken über die Abbruchbedingung gemacht.

0
43
@AldoradoXYZ
break X;

Es handelt sich hierbei um ein labeled break bzw. die Variante von goto, die es doch in den Java-Sprachumfang geschafft hat.

0
35
@regex9

Oha, gut zu wissen.

Aber niemals benutzen. Ist ja fast schon Sabotage an der Sprache.

Gruß

0

a kann nicht kleiner als b sein, weil a 10 ist. die schleife bricht sofort ab. while heisst "solange 10 < 0" . Das ist natürlich Blödsinn.

Was möchtest Du wissen?