Zahlenschloss

Status
Nicht offen für weitere Antworten.

f145h

Mitglied
servus leute...habe versucht ei Zahlenschloss zu programmieren.Es funktioniert fast alles...ich will aber dass der User höchsten 3 mal falsche zahlen eingeben kann und nicht so oft wie er will....ich hab mir überlegt dies mit ner For-Schleife

for(int i = 0;i<3;i++)

zu tun aber geht irgendwie nicht.

Code:
	    int erste=0,zweite=0,dritte=0;
	    final int zahl1=3,zahl2=44,zahl3=45;
	    
	     
	   while(erste!=zahl1 && zweite!=zahl2 && dritte!=zahl3){
	    
		System.out.print("Geben Sie die 1ste ein:") ;
	    inputData = userIn.readLine() ;
	    erste = Integer.parseInt( inputData);
	    
	    System.out.print("Geben Sie die zweite ein:") ;
	    inputData = userIn.readLine() ;
	    zweite = Integer.parseInt( inputData);
	    
	    System.out.print("Geben Sie die dritte ein:") ;
	    inputData = userIn.readLine() ;
	    dritte = Integer.parseInt( inputData);
	    
	    
	    if(erste==zahl1 && zweite==zahl2 && dritte==zahl3){
	    	
	    
	    System.out.println("Öffen");
	    
	    	
	    }
	    else 
	    	System.out.println("falsche kombi");
	  
	   
	    }
 

Murray

Top Contributor
Wenn du in den Code keine for-Schleife schreibst, kann es ja auch nicht gehen...

Davon abgesehen würde ich lieber die ohnehin schon vorhandene while-Schleife erweitern ("Solange Zahlen nicht gleich sind und die Anzahl der erfolglosen Versuche noch kleiner ist als 3"); in der Schleife dann einfach einen Zähler hochzählen.
 

_tiGGa_

Mitglied
Code:
for (int i=0;i<4;i++){

//verarbeitung + Eingabe der Zahlen

    if (erste==zahl1 && zwe..... . . . . .){
        i=4;
        System.out.println("super, du hast es geschaft");
    }esle{
        System.out.println("falsch");
    }
}

greetz
 

Murray

Top Contributor
_tiGGa_ hat gesagt.:
Code:
for (int i=0;i<4;i++){

//verarbeitung + Eingabe der Zahlen

    if (erste==zahl1 && zwe..... . . . . .){
        i=4;
        System.out.println("super, du hast es geschaft");
    }esle{
        System.out.println("falsch");
    }
}

Damit sind vier Versuche möglich (i=0,1,2,3), außerdem ist es nicht so schön, dass die Zahl 4 zweimal im Code auftaucht - solche Redundanz führt spätestens dann zum Fehler, wenn man die Anzahl mal ändern will. In solchen Fällen den Zahlenwert besser in eine Konstante packen (final int max = 3). In diesem Fall, wo es nur darum geht, die Schleife zu verlassen, würde ich ohnehin lieber break verwenden:

Code:
final int max = 3;
for (int i=0;i<max;i++){

//verarbeitung + Eingabe der Zahlen

    if (erste==zahl1 && zwe..... . . . . .){
        System.out.println("super, du hast es geschaft");
        break;
    }

    System.out.println("falsch");

}
 

_tiGGa_

Mitglied
ohh, ok, das mit der 4 stimmt ^^
und das man lieber dann ne konstante benutzt auch ^^

aber sollte ja nur ne anregung sein :)

aber trotzdem danke für das mit dem break,
sollte ich mal wirklich meine forschleife beenden, setzte ich immer die zählschleife auf die höchste position,
naja, zum glück lernt man ja nie aus :)

greetz
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben