Erste Schritte Endlosschleife & wozu braucht man /* und */

trick 17

Mitglied
Hallo,
ich habe jetzt schon etwas länger Informatik als Unterrichtsfach und bin bei Java aber etwas hängen geblieben und habe gleich zwei Fragen.
Unsere Aufgabe war hier, dass der Spieler die Zufallszahl vom Rechner herausfinden muss indem der Rechner mit "deinen zahl ist zu groß/ klein" antwortet.
1. Ich weiß nicht genau was ich falsch mache, aber ich habe hier eine Endlosschleife erschaffen :( sieht irgendjemand den Fehler?
2. verstehe ich nicht ganz was in den letzten Zeilen steht das hat meine Lehrerin da hingeschrieben
wozu brauche ich das /* bzw */ am Ende?
/*if (Eingabe == Zufall)
{
JOptionPane.showInputDialog(" ... ");
}*/

Vielen Dank schonmal :)
Hier noch mein kompletter Code:

Java:
package Spiel;
import javax.swing.*;
public class Spiel {
public static void main(String[] args) {
  // TODO Auto-generated method stub

  int Zufall= (int)(Math.random()*100)+1;

  String SEingabe=JOptionPane.showInputDialog("Errate meine Zahl!");
  int Eingabe=Integer.parseInt(SEingabe);
  int Versuch = 0;
  while (Eingabe != Zufall)

  {
   if (Eingabe < Zufall)
   {
    JOptionPane.showInputDialog("Die gesuchte Zahl ist größer! Nächster Versuch:");
    Versuch++;
   }
  
   else if (Eingabe > Zufall)
   {
    JOptionPane.showInputDialog("Die gesuchte Zahl ist kleiner! Nächster Versuch:");
    Versuch++;
   }

  }


  /*if (Eingabe == Zufall)
  {
   JOptionPane.showInputDialog("SUBBA du hast die Zahl in " + Versuch + " gefunden, back dir ein Eis");
  }*/
  
  }
}
 
Zuletzt bearbeitet von einem Moderator:

White_Fox

Top Contributor
Java:
/*
    irgendein Text
*/
ist ein Kommentar über mehrere Codezeilen. Meist werden (vermutlich) fehlerhafte Codezeilen auskommentiert anstatt sie zu löschen. Dann kann man sie einfacher wieder zurückholen, falls man sie doch vielleicht nochmal brauchen könnte.

Nachtrag: Es wundert mich ja, das mihe7 noch nicht hier war. :D
 
X

Xyz1

Gast
Meist werden (vermutlich) fehlerhafte Codezeilen auskommentiert anstatt sie zu löschen. Dann kann man sie einfacher wieder zurückholen, falls man sie doch vielleicht nochmal brauchen könnte.
Das ist verpönt. Eigentlich sind die anmerkend zum Code gedacht um den zu beschreiben oder rklären.

Es wundert mich ja, das mihe7 noch nicht hier war.
Wird auch nicht 24h im Forum unterwegs sein. :p
 

White_Fox

Top Contributor
@Tobias-nrw
Ja, stimmt schon. Aber wer macht das nicht so, es geht schneller, und gerade wenn man anderer Leute Code korrigiert (ist ja Unterricht, kein Review) durchaus angebracht.

Wird auch nicht 24h im Forum unterwegs sein. :p
Sicher...wahrscheinlich war ich eher überrascht, überhaupt mal der Erste zu sein der irgendwo antwortet. Sonst, wenn ich abends mal hier reinschaue, ist eigentlich alles immer schon abgefertigt.
 
Zuletzt bearbeitet:

trick 17

Mitglied
Java:
/*
    irgendein Text
*/
ist ein Kommentar über mehrere Codezeilen. Meist werden (vermutlich) fehlerhafte Codezeilen auskommentiert anstatt sie zu löschen. Dann kann man sie einfacher wieder zurückholen, falls man sie doch vielleicht nochmal brauchen könnte.
Ahh vielen Dank
Schön dass mir das im Unterricht nicht gesagt wird sondern es einfach nur hingeschrieben wird ohne Kontext und ich die ganze Zeit versuche zu verstehen was der Befehl macht
 

trick 17

Mitglied

jhjh

Bekanntes Mitglied
Deine while-Schleife umschließt nicht
Code:
if (Eingabe == Zufall)
  {
   JOptionPane.showInputDialog("SUBBA du hast die Zahl in " + Versuch + " gefunden, back dir ein Eis");
  }
Einfach die letzt Klammer vor if(Eingabe == Zufall) einfach dahinter packen. Statt if (Eingabe == Zufall) kannst du auch einfach ein else benutzen (Wenn die Zahl weder kleiner noch größer als die gesuchte Zahl ist, muss sie ja die gesuchte Zahl sein).
Ach und Variable Eingabe ändert sich nie in deinem Programm. Nach einem Fehlversuch sollte die neu eingegebene Zahl gespeichert werden.
 

trick 17

Mitglied
Deine while-Schleife umschließt nicht
Code:
if (Eingabe == Zufall)
  {
   JOptionPane.showInputDialog("SUBBA du hast die Zahl in " + Versuch + " gefunden, back dir ein Eis");
  }
Einfach die letzt Klammer vor if(Eingabe == Zufall) einfach dahinter packen
oh ja stimmt ich mache das später gleich einmal und sag dann ob’s geklappt hat
Danke :)
 

M.L.

Top Contributor
Das gepostete Programm (inkl. Addition von "System.out.println(Zufall);" nach der Zeile "int Zufall= (int)(Math.random()*100)+1;" und Erweiterung der while-Schleife) scheint noch mehr Fehler zu enthalten: bei der 1. Eingabe konnte er noch sagen, ob die eingegebene Zahl grösser oder kleiner war, danach bleibt die Aussage gleich. Ein Treffer wird mit einem Abbruch ohne Meldung ausgeführt. Siehe das Openbook zum Thema Scheifen: http://openbook.rheinwerk-verlag.de...02_007.htm#ixa371dd1848dfa1c61b6366c4e5d3b2ae
 

trick 17

Mitglied
Einfach die letzt Klammer vor if(Eingabe == Zufall) einfach dahinter packen. Statt if (Eingabe == Zufall) kannst du auch einfach ein else benutzen (Wenn die Zahl weder kleiner noch größer als die gesuchte Zahl ist, muss sie ja die gesuchte Zahl sein).
Ach und Variable Eingabe ändert sich nie in deinem Programm. Nach einem Fehlversuch sollte die neu eingegebene Zahl gespeichert werden.

habe das jetzt nochmal abgeändert es sind aber noch fehler drin.
Also klammer hab hinter if(Eingabe == Zufall) gesetzt damit es von der while schleife mit eingeschlossen ist.
und hab das nit der eingabe versucht... darf man das so machen?

Java:
while (Eingabe != Zufall)
 
   {
    if (Eingabe < Zufall)
    {
     String Eingabe1 =JOptionPane.showInputDialog("Die gesuchte Zahl ist größer! Nächster Versuch:");
     Versuch++;
    }
    
  
   
    else if (Eingabe > Zufall)
    {
     String Eingabe2 = JOptionPane.showInputDialog("Die gesuchte Zahl ist kleiner! Nächster Versuch:");
     Versuch++;
    }
 
    if (Eingabe == Zufall) // (Eingabe1 == Zufall) //  (Eingabe2 == Zufall)
   
    {
     System.out.println("SUBBA du hast die Zahl in " + Versuch + " Versuchen gefunden, back dir ein Eis");
    }
   }
 
Zuletzt bearbeitet von einem Moderator:

mihe7

Top Contributor
Überleg Dir mal, ohne Code, was Du eigentlich willst und versuche, das in einen Algorithmus und anschließend in Code zu übersetzen.

Verkürztes Beispiel: ich möchte vom Benutzer Eingaben abfragen, und zwar so lange, bis er eine zuvor zufällig gewählte Zahl erraten hat.

Ansatz:
Code:
1. zahl := zufällige Zahl
2. eingabe := Eingabe des Benutzers
3. falls eingabe != zahl, zurück zu 2
4. ende (da hier eingabe == zahl gilt)
 

trick 17

Mitglied
Überleg Dir mal, ohne Code, was Du eigentlich willst und versuche, das in einen Algorithmus und anschließend in Code zu übersetzen.

Ok also ich habe jetzt eine etwas anderen Ansatz:
Code:
int Zufall= (int)(Math.random()*100)+1;
 
  String SEingabe= ""; int Eingabe= 0;
 
  int Versuch = 0;
  SEingabe= JOptionPane.showInputDialog("Errate meine Zahl!");
 
  while (Eingabe != Zufall)
 
    {
     if (Eingabe == Zufall)  break;
     
     if (Eingabe < Zufall)
    {
     SEingabe= JOptionPane.showInputDialog("Die gesuchte Zahl ist größer! Nächster Versuch:");
     Versuch++;
     int Eingabe1 =Integer.parseInt(SEingabe); /*Ich darf es nicht "Eingabe" nennen so wie vorher, aber wenn ich es anders benenne ist es ja nicht mehr definiert*/
    }
   
   
     if (Eingabe > Zufall)
    {
     SEingabe = JOptionPane.showInputDialog("Die gesuchte Zahl ist kleiner! Nächster Versuch:");
     Versuch++;
    }
 
    if (Eingabe == Zufall)
   
    {
     System.out.println("SUBBA du hast die Zahl in " + Versuch + " Versuchen gefunden, back dir ein Eis");
    }
   
    }
   
 
 
  }
 }
 

mihe7

Top Contributor
Erstmal Dein Code nochmal schöner formatiert:
Java:
  int Zufall= (int)(Math.random()*100)+1;
 
  String SEingabe= ""; int Eingabe= 0;
 
  int Versuch = 0;
  SEingabe= JOptionPane.showInputDialog("Errate meine Zahl!");
 
  while (Eingabe != Zufall) {
     if (Eingabe == Zufall)  break;
     
     if (Eingabe < Zufall) {
       SEingabe= JOptionPane.showInputDialog("Die gesuchte Zahl ist größer! Nächster Versuch:");
       Versuch++;
       int Eingabe1 =Integer.parseInt(SEingabe); /*Ich darf es nicht "Eingabe" nennen so wie vorher, aber wenn ich es anders benenne ist es ja nicht mehr definiert*/
     }
   
   
     if (Eingabe > Zufall) {
       SEingabe = JOptionPane.showInputDialog("Die gesuchte Zahl ist kleiner! Nächster Versuch:");
       Versuch++;
     }
 
     if (Eingabe == Zufall) {
       System.out.println("SUBBA du hast die Zahl in " + Versuch + " Versuchen gefunden, back dir ein Eis");
     }   
  }
 

mihe7

Top Contributor
Java:
  int zufall= (int)(Math.random()*100)+1;

  String eingabeStr;
  int eingabe;

  int versuch = 0;
 
  eingabeStr = JOptionPane.showInputDialog("Errate meine Zahl!");
  eingabe = Integer.parseInt(eingabeStr);

  while (eingabe != zufall) {
     if (eingabe < zufall) {
       eingabeStr = JOptionPane.showInputDialog("Die gesuchte Zahl ist größer! Nächster Versuch:");
       eingabe = Integer.parseInt(eingabeStr);
       versuch++;
     } else if (eingabe > zufall) {
       eingabeStr = JOptionPane.showInputDialog("Die gesuchte Zahl ist kleiner! Nächster Versuch:");
       eingabe = Integer.parseInt(eingabeStr);
       versuch++;
     }
  }

  // an der Stelle gilt die Schleifenbedingung nicht mehr
  // d. h. es ist eingabe == zufall

  System.out.println("SUBBA du hast die Zahl in " + versuch + " Versuchen gefunden, back dir ein Eis");

EDIT: noch ein paar Bezeichner umbenannt, hoffe jetzt nichts mehr übersehen zu haben, sonst muss ich das doch mal in eine IDE werfen.
 
Zuletzt bearbeitet:

jhjh

Bekanntes Mitglied
an der Stelle gilt die Schleifenbedingung nicht mehr
Das Stimmt! Da hatte ich mich leider vertan. Der letzte Fall muss nicht in die Schleife bzw. muss garnicht berücksichtigt werden! Sorry!
Ich darf es nicht "Eingabe" nennen so wie vorher, aber wenn ich es anders benenne ist es ja nicht mehr definiert
Wahrscheinllich weil du versucht hast die Variable mehrfach zu initialisieren. Eine Variable kann immer nur einmal initialisiert werden, aber mehrfach definiert werden
String str; //initialisieren
str = "halllo" //definieren
str = "nochmal hallo" //definieren
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
noah1407 endlosschleife Java Basics - Anfänger-Themen 7
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
sserio Endlosschleife ja nein? Java Basics - Anfänger-Themen 13
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
B Endlosschleife Thread sauber beenden Java Basics - Anfänger-Themen 19
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
O Endlosschleife abbrechen Java Basics - Anfänger-Themen 10
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
S Interpreter-Fehler Endlosschleife zur Laufzeit aber warum? Java Basics - Anfänger-Themen 15
J Endlosschleife bei Try-Catch? Java Basics - Anfänger-Themen 3
S Endlosschleife - Warum? Java Basics - Anfänger-Themen 1
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
C Collatzfolge endlosschleife. Java Basics - Anfänger-Themen 4
D Array in Endlosschleife überschreibt vorherige Werte Java Basics - Anfänger-Themen 4
E Eulersche Zahl berechnen, Endlosschleife Java Basics - Anfänger-Themen 2
N Endlosschleife... Warum? Java Basics - Anfänger-Themen 12
P Kapselung Problem - Endlosschleife Java Basics - Anfänger-Themen 10
M Endlosschleife bricht durch switch ab Java Basics - Anfänger-Themen 17
D Endlosschleife und ich komme nicht raus! Java Basics - Anfänger-Themen 8
N Erste Schritte Endlosschleife und Exception Java Basics - Anfänger-Themen 5
R Endlosschleife nach InputMismatchException Java Basics - Anfänger-Themen 2
S Endlosschleife? Java Basics - Anfänger-Themen 2
T Endlosschleife Java Basics - Anfänger-Themen 2
Z Endlosschleife Java Basics - Anfänger-Themen 6
T Endlosschleife Java Basics - Anfänger-Themen 12
H Wieso ist das eine Endlosschleife? Java Basics - Anfänger-Themen 8
StupidAttack Endlosschleife, Sockets Java Basics - Anfänger-Themen 2
C ungewollte Abbrüche in einer Endlosschleife Java Basics - Anfänger-Themen 6
E komische endlosschleife Java Basics - Anfänger-Themen 6
7 Endlosschleife pausieren Java Basics - Anfänger-Themen 11
F .readLine() erzeugt endlosschleife Java Basics - Anfänger-Themen 4
R Wieso hänge ich hier in einer Endlosschleife (vermute ich zumindest)? Java Basics - Anfänger-Themen 2
F Falscheingabe abfangen - Endlosschleife Java Basics - Anfänger-Themen 5
R warum endlosschleife? Java Basics - Anfänger-Themen 7
W Fakultät, warum Endlosschleife? Java Basics - Anfänger-Themen 15
S JTable Endlosschleife Java Basics - Anfänger-Themen 5
J Aus endlosschleife kommen Java Basics - Anfänger-Themen 5
R Endlosschleife verhindert das Schließen des Fensters Java Basics - Anfänger-Themen 10
Povlsen84 Endlosschleife Java Basics - Anfänger-Themen 5
V Bubble Sort endet in Endlosschleife Java Basics - Anfänger-Themen 4
Antoras Endlosschleife Java Basics - Anfänger-Themen 8
J Wartezustand in Endlosschleife - bessere Alternativen Java Basics - Anfänger-Themen 20
H Problem beim Einlesen einer Datei (Endlosschleife ?) Java Basics - Anfänger-Themen 3
N Endlosschleife? Java Basics - Anfänger-Themen 3
V mehrere Threads starten + Endlosschleife Java Basics - Anfänger-Themen 3
I Hilfe wer findet mein Fehler in bei der Endlosschleife Java Basics - Anfänger-Themen 7
G Sound/Endlosschleife/Abbruchproblem Java Basics - Anfänger-Themen 3
G HappyNumbers - Endlosschleife Java Basics - Anfänger-Themen 11
0 Endlosschleife beim Integer Array mischen? Java Basics - Anfänger-Themen 3
M OutputStream funktioniert nur in Endlosschleife ? Java Basics - Anfänger-Themen 4
G Endlosschleife, aber warum? Java Basics - Anfänger-Themen 12
G Endlosschleife beenden Java Basics - Anfänger-Themen 10
M Wozu dient Interfaces? Java Basics - Anfänger-Themen 6
berserkerdq2 Wozu benötigt man den BiPredicate, kann ich nicht einfach eine normale Methode nutzen, statt BiPredicate? Java Basics - Anfänger-Themen 3
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
W Stackabarbeitung - Wozu dient das "True" ? Java Basics - Anfänger-Themen 1
R Wozu sind Annotations da? Java Basics - Anfänger-Themen 3
H abstract - Wozu? Java Basics - Anfänger-Themen 6
V OOP Wozu Objekt erstellen? Java Basics - Anfänger-Themen 2
G Wozu ist die Methode offsetByCodePoints(int, int) beim StringBuilder sinnvoll? Java Basics - Anfänger-Themen 1
G wozu dient getContentPane()? Java Basics - Anfänger-Themen 1
M Wozu Upcasting? Am Beispiel List = ArrayList Java Basics - Anfänger-Themen 2
P Wozu brauche ich (this.)? Java Basics - Anfänger-Themen 3
F Wozu braucht man array list? Java Basics - Anfänger-Themen 29
U Wozu dient ein Vector in Java? Java Basics - Anfänger-Themen 6
B Wozu Observer? Java Basics - Anfänger-Themen 9
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
J Datentypen Array in enum, ?? Wozu ?? Java Basics - Anfänger-Themen 3
J Wozu werden die anonyme Klassen verwendet? Java Basics - Anfänger-Themen 9
F Wozu ist Java gut? Java Basics - Anfänger-Themen 7
H Maps? Wozu? Nutzen? Java Basics - Anfänger-Themen 3
0 Wozu braucht man Generics? Java Basics - Anfänger-Themen 1
V wozu ist das 'L' beim long notwendig ? Java Basics - Anfänger-Themen 5
A wozu ant? Java Basics - Anfänger-Themen 12
S Wozu dient die Main Class? Java Basics - Anfänger-Themen 3
Y Wann / Wozu inner class Java Basics - Anfänger-Themen 3
S Desginfrage Interface - aber wozu eigentlich? Java Basics - Anfänger-Themen 2
E Wozu dienen Schnittstellen? Java Basics - Anfänger-Themen 16
N Wozu Applications? Java Basics - Anfänger-Themen 8
M Methode bekommt ein Objekt der Klasse als Parameter. Wozu? Java Basics - Anfänger-Themen 4
R Wozu sind Interfaces gut? Java Basics - Anfänger-Themen 14
B Hashcode?Was ist das und wozu? Java Basics - Anfänger-Themen 2
R Wozu Interfaces ? Java Basics - Anfänger-Themen 5
G Konstruktoren (was, wozu, wieso, warum) Java Basics - Anfänger-Themen 4
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
celta_vigo Programmieranfänger braucht Rat zu mehr Praxisnähe Java Basics - Anfänger-Themen 8
K Für was braucht man die left und right shift operatoren? Was bringen die, also welchen Zweck haben die? Java Basics - Anfänger-Themen 15
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
Devin Wie lange braucht man um Java zu beherrschen und wie kann man es am schnellsten erlernen? Java Basics - Anfänger-Themen 7
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
ruutaiokwu Bluetooth-Zugriff, braucht es dazu plattformabhängige Libraries oder kann das Java mittlerweile selbst? Java Basics - Anfänger-Themen 10
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
F Anfänger braucht Hilfe :) Java Basics - Anfänger-Themen 3
D Anfänger braucht Hilfe Java Basics - Anfänger-Themen 2
V Erste Schritte Java-Anfänger braucht Hilfe bei Arrays Java Basics - Anfänger-Themen 19
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben