Do While Schleifenfrage

Status
Nicht offen für weitere Antworten.

Schrubber

Bekanntes Mitglied
Hallo Leute,

Ich bin derweil an einem größeren Projekt dran und bin nun aber an einer kleinen Anweisung gescheitert :D

Und zwar ist mein Qellcode des Teils wie folgt:


Java:
		    int gegnerzug = (int) (Math.random()*9+1);
		  	
		    do 
		    {
		    	gegnerzug = (int) (Math.random()*9+1);
			    String feldzug = "feld"+gegnerzug;
		    }
		    while(feldzug != "_");
		    }

Was es eigentlich machen soll:
Es soll die variable gegnerzug einer Zufallszahl von 1-9 zuweisen. Diese soll dann an den Text "feld" angehängt werden und als String feldzug ausgegeben werden.
Zu guter letzt soll dann noch getestet werden, ob feldzug != "_" ist.

feldzug ist bei mir entweder "Q", "X" oder "_".

Alles funzt, bis auf dieses mit dem verknüpfen. Cannot be resolved, heißt es immer. Danke schonmal für die Hilfe :)


Schrubber
 

Atze

Top Contributor
Java:
int gegnerzug = (int) (Math.random()*9+1);
		String feldzug;
        do 
        {
            gegnerzug = (int) (Math.random()*9+1);
            feldzug = "feld"+gegnerzug;
        }
        while(feldzug != "_");

versuchs mal so ;) feldzug wäre sonst nur in der schleife sichtbar
 

eRaaaa

Top Contributor
und du willst wahrscheinlich eher :

Java:
while(!"_".equals(feldzug));

???:L
 

Landei

Top Contributor
Aber wenn feldzug = "feld"+gegnerzug; dann wird die Variable doch niemals gleich "_" ?
 

Schrubber

Bekanntes Mitglied
Ich meinte das so:

Er soll an das Wort feld die Zufallszahl anhängen.

Vordefiniert ist mein Spielfeld von Feld1-Feld9. Dies sind Strings, von daher brauch ich auch für die Feldzug genau diese variablen, die sich halt aus Feld + Zufallszahl zusammensetzen ^^


Bin da auch ratlos xD
 

Schrubber

Bekanntes Mitglied
Okay :)

Sorry für Doppelpost, wollt nur sagen, dass ichs ein wenig anders geschriebn hab, mit euren Tipps, nun funktioniert es :)


Java:
		  	int gegnerzug = (int) (Math.random()*9+1);
		  	int meinzug;
		  	String feldzug = null;
		  	String feldzug2 = null;
		  	        do 
		  	        {
		  	            gegnerzug = (int) (Math.random()*9+1);
		  	            if (gegnerzug == 1)
		  	            {
		  	            	feldzug = feld1;
		  	            }
		  	            if (gegnerzug == 2)
		  	            {
		  	            	feldzug = feld2;
		  	            }
		  	            if (gegnerzug == 3)
		  	            {
		  	            	feldzug = feld3;
		  	            }
		  	            if (gegnerzug == 4)
		  	            {
		  	            	feldzug = feld4;
		  	            }
		  	            if (gegnerzug == 5)
		  	            {
		  	            	feldzug = feld5;
		  	            }
		  	            if (gegnerzug == 6)
		  	            {
		  	            	feldzug = feld6;
		  	            }
		  	            if (gegnerzug == 7)
		  	            {
		  	            	feldzug = feld7;
		  	            }
		  	            if (gegnerzug == 8)
		  	            {
		  	            	feldzug = feld8;
		  	            }
		  	            if (gegnerzug == 9)
		  	            {
		  	            	feldzug = feld9;
		  	            }
		  	        }
		  	        while(!"_".equals(feldzug));

Danke Leute :)

Schrubber
 

0x7F800000

Top Contributor
Java:
if (gegnerzug == 1)
                        {
                            feldzug = feld1;
                        }
                        if (gegnerzug == 2)
                        {
                            feldzug = feld2;
                        }
                        if (gegnerzug == 3)
                        {
                            feldzug = feld3;
                        }
                        if (gegnerzug == 4)
                        {
                            feldzug = feld4;
                        }
                        if (gegnerzug == 5)
                        {
                            feldzug = feld5;
                        }
                        if (gegnerzug == 6)
                        {
                            feldzug = feld6;
                        }
                        if (gegnerzug == 7)
                        {
                            feldzug = feld7;
                        }
                        if (gegnerzug == 8)
                        {
                            feldzug = feld8;
                        }
                        if (gegnerzug == 9)
                        {
                            feldzug = feld9;
                        }
vollkommen unabhängig davon, was es ist: es sieht sehr suboptimal aus. :autsch:
 
Zuletzt bearbeitet:

Schrubber

Bekanntes Mitglied
Nö. Es ist niemals ne Endlosschleife :D

Er sagt ja, dass gegnerzug der zufallszahl zugeordnet wird. Daraufhin wird gegnerzug dem Feldzug zugeordnet, welcher am Ende prüft, ob das Feld den Wert "_" hat. Sonst kommt

Java:
	            if (feldzug != "_")
	            {
	            	System.out.println("Das Feld ist bereits vergeben. Bitte versuche es erneut!");
	            }
 

faetzminator

Gesperrter Benutzer
:lol::lol: Ich finde die Ideen der Anfänger immer wieder amüsant. Ein Tip an Schrubber und razvan: Schaut euch Arrays, Enums, Lists etc. an :) Wenn z.B. feld1 - feld<n> als Array oder List definiert würde, könnte man [c]feldzug = feld[gegnerzug][/c] bzw. [c]feldzug = feld.get(gegnerzug)[/c] verwenden.
 

Das Brot

Mitglied
Java:
		  	            if (gegnerzug == 1)
		  	            {
		  	            	feldzug = feld1;
		  	            }
		  	            if (gegnerzug == 2)
		  	            {
		  	            	feldzug = feld2;
		  	            }
		  	            if (gegnerzug == 3)
		  	            {
		  	            	feldzug = feld3;
		  	            }
		  	            if (gegnerzug == 4)
		  	            {
		  	            	feldzug = feld4;
		  	            }
		  	            if (gegnerzug == 5)
		  	            {
		  	            	feldzug = feld5;
		  	            }
		  	            if (gegnerzug == 6)
		  	            {
		  	            	feldzug = feld6;
		  	            }
		  	            if (gegnerzug == 7)
		  	            {
		  	            	feldzug = feld7;
		  	            }
		  	            if (gegnerzug == 8)
		  	            {
		  	            	feldzug = feld8;
		  	            }
		  	            if (gegnerzug == 9)
		  	            {
		  	            	feldzug = feld9;
		  	            }
Das würde ich aber ändern in :

Java:
		  	            switch(gegnerzug){
                                    
                                        case 1: feldzug = feld1; break;
                                        case 2: feldzug = feld2; break;
                                        case 3: feldzug = feld3; break;
                                        case 4: feldzug = feld4; break;
                                         ....etc
                                    }

Das ist leserlicher.

Ich mein für was hat man den die Mehrfachauswahl

mfg Brot
 
M

maki

Gast
Abgesehen von den mehr als seltsamen If-Abfragen sollten for bzw. while Schleifen gegenüber do-while Schleifen bevorzugt werden.
 

faetzminator

Gesperrter Benutzer
@Das Brot: Na dann drück mal [c][ctrl]+[shift]+[f][/c] ;) Wie gesagt, mit meiner Idee liesse sich das ohne Redundanzen programmieren - mit deiner hast du genau gleich viele wie jener des TO.
 

eRaaaa

Top Contributor
@Das Brot: Na dann drück mal [c][ctrl]+[shift]+[f][/c] ;) Wie gesagt, mit meiner Idee liesse sich das ohne Redundanzen programmieren - mit deiner hast du genau gleich viele wie jener des TO.

hätte aber zumindestens nen minimalen performancegewinn (ausser beim worst case ??), da der TO ja wirklich durch JEDE if-abfrage durchgeht (nicht mal else if !! )
;)
 

0x7F800000

Top Contributor
Wenn im code aus irgendeinem Grund zahlen größer als 1 vorkommen, sollte man an sie gedanklich 3 Nullen anhängen, und sich überlegen, ob der code dann immer noch genau so kurz sein würde. Sollte die Länge des codes irgendwo wie O(n) zur Länge irgendeiner eingabe wachsen, dann hat man den Sinn des Programmierens verfehlt.

Das Brot hat gesagt.:
Das ist leserlicher.
Gedankenexperiment: 9 durch 9000 ersetzen.
Java:
switch(stuff){
   case 1: ...
   case 2: ...
   case 3: ...
  ....//37 kilometer weiter
   case 9000: ...
}
"Leserlicher" hin oder her: jedem, der versucht diesen Mist zu lesen, fällt das Mausrad ab. :autsch:
 
Zuletzt bearbeitet:

0x7F800000

Top Contributor
wenn das eh nur ein haufen konstanter werte ist, die vorher alle festgelegt sind, dann sollte man es eigentlich doch lieber bei == lassen, aber statt strings dann irgendwelche sinnvolleren enums verwenden o.ä.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
DrahtEck Arrays und While-Loop Java Basics - Anfänger-Themen 50
C Erste Schritte While-Schleife Java Basics - Anfänger-Themen 3
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
S Erste Schritte While Schleifen Java Basics - Anfänger-Themen 11
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
Say do-while Syntak Java Basics - Anfänger-Themen 3
G Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
J do..while Schleife Java Basics - Anfänger-Themen 14
W Wiederkehrende Konsolen-Anzeige mit do-While?! Java Basics - Anfänger-Themen 33
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
D Array mit while-schleife Java Basics - Anfänger-Themen 12
B do while Schleife Java Basics - Anfänger-Themen 3
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
S Do-While Schleife Java Basics - Anfänger-Themen 6
J Von While zu for Java Basics - Anfänger-Themen 42
G While/If Programm Java Basics - Anfänger-Themen 2
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
G Flussdiagramm-Do while Java Basics - Anfänger-Themen 4
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
G While schleife Java Basics - Anfänger-Themen 2
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
O Erste Schritte Zahlendreieck mit While Java Basics - Anfänger-Themen 2
D Break Sprungmarken Problem einer While True in While True Java Basics - Anfänger-Themen 6
A Erste Schritte while-Schleife Java Basics - Anfänger-Themen 38
W While-Loop unterbrechen Java Basics - Anfänger-Themen 4
X While Do schleife funtioniert nicht Java Basics - Anfänger-Themen 5
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
J Input/Output Strings aneinander reihen mit while schleife Java Basics - Anfänger-Themen 25
M Methoden while liefert nur den ersten Datensatz Java Basics - Anfänger-Themen 12
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
J While Schleife Java Basics - Anfänger-Themen 19
S While-Schleifen Ausgabe als String? Java Basics - Anfänger-Themen 1
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
helldunkel While Schleife trotz false Java Basics - Anfänger-Themen 4
E Threads Thread in While-Schleife nur einmal starten Java Basics - Anfänger-Themen 2
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
b1ck while-Schleife Java Basics - Anfänger-Themen 10
b1ck Integer initialisieren bei do-while-Schleife Java Basics - Anfänger-Themen 11
kilopack15 DoWhile-Schleife als While-Schleife darstellen Java Basics - Anfänger-Themen 9
A While-Schleife funktioniert nicht! Java Basics - Anfänger-Themen 33
A Verständnisproblem Ausgabe Do-While-Schleife Java Basics - Anfänger-Themen 3
E Alphabet mit einer while Schleife ausgeben Java Basics - Anfänger-Themen 3
I Mehre While-Schleifen hintereinander Java Basics - Anfänger-Themen 13
T while schleife starten , beeneden und wieder Starten Java Basics - Anfänger-Themen 8
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
F Reached end while parsing Java Basics - Anfänger-Themen 6
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
$ Multiplikations-Rechner mit while Schleife Java Basics - Anfänger-Themen 8

Ähnliche Java Themen


Oben