Java Gäste zähler?

...komplette Frage anzeigen

3 Antworten

Wenn du keine geschwungenen Klammern nach Schleifen verwendest wird nur der nächste Befehl in der Schleife ausgeführt.

In deinem Fall ist das lediglich ein ;

for(i=1;i<=462;i++)
;

Das heißt also, deine Schleife macht nichts, außer i zu erhöhen.

So wäre es richtig:

for(i = 1; i <= 462; i++) {
System.out.println("Wie alt sind Sie?");
alter = abfrage.nextInt();

if (alter > 18)
System.out ...
else if (alter == 18)
System.out ...
else if (alter > 16)
System.out ...
else
System.out ...
}


Siehst du übrigens, dass ich die Altersabfrage für genau 18 Jahre (alter == 18) nach oben verschoben habe?
In deinem Code würde die nämlich nie getriggert werden, weil alter > 16 vorher immer true ergibt.

Ähm... Was ist denn Scanner? Und wo definierst du "alter"?

Mit Scanner fragt man denn Gast wie alt der ist und ganz oben als aller erster ist  int alter;

die antowort von der abfrage ist der wert von alter

0
@sadasdasd21

Oh, da hab ich was überlesen, sry^^ Setz zwischendurch noch ein paar Ausgaben rein und guck, wie sich die Variable verändert bzw. ob sie sich so verändert, wie du willst, um denn zu gucken, wo der Fehler ist.

0

Klammern sind des Rätsels Lösung


Wenn keine Klammern um einen Block sind wird immer nur das erste Statement ausgeführt:



while(i < 1000){

int x = 0;  //wird 1000 ausgeführt

if(a == b){}; //wird  1000 mal ausgeführt

}

######################


while(i < 1000)

int i = 0;  //wird 1000 mal ausgeführt

//Schleife endet hier!!

if(a == b){}; //wird 1 mal ausgeführt



Deine Schleife ist schon lange beendet wenn das System.out.println aufgerufen wird und der Zähler ist somit schon bei 462



Was möchtest Du wissen?