Programm läuft plötzlich nicht weiter

Deven

Mitglied
Hallo, ich habe morgen ein Nachgespräch in einer Firma für meinen Ausbildungsplatz und ich habe mich in der Zwischenzeit für diesen viel mit Java auseinandergesetzt und heute ein erstes Programm geschrieben. Vor wenigen Stunden lief es, ich schaltete den Computer aus, hatte zuvor alles ordnungsgemäß gesichert, ich schalte den Rechner ein, öffne Eclipse, nehme einige kleine Änderungen vor (Einige Zeilen Code hinzugefügt), dann startete ich das Programm und plötzlich geht ab einem gewissen Punkt gar nichts mehr, wo ich gar nicht mal weiter geschrieben habe. Zunächst hatte ich das Problem, dass ich keinen Input geben konnte, dann, als ich das gelöst habe, kam nach meinem Input keine Reaktion mehr. So wie der Code da steht lief vor wenigen Stunden noch und nun Pustekuchen. Ich würde mich über Hilfe sehr freuen, da ich nun bereits mindestens eine Stunde versuche den Fehler zu finden.
Ich habe die fehlerhaften Stellen mit Randnotizen markiert (// Randnotiz) ich hoffe, dass das hilfreich ist. Sind die Zeilen 25 und 52. Witzigerweise.
Vielen Dank. :)

Java:
import java.util.Scanner;

class Test{
public static void main(String args[]){
    Scanner tests = new Scanner(System.in);
    System.out.println("What's your name?");
    String Name = tests.nextLine();
    if (Name.equals("")){
        System.out.print("Please tell me your name.");
        System.out.println("What's your name?");
    }else{
    System.out.println("Hello " + Name + ". Press Enter.");
    }
    String Gender = tests.nextLine();
    System.out.println("Are you male, or female?");
    Gender = tests.nextLine();
    switch (Gender) {
    case "male":
        System.out.println("Nice. Do you like football?");
        String Football = tests.nextLine();
        break;
    case "Male":
        System.out.println("Nice. Do you like football?");
        Football = tests.nextLine();
    switch (Football) { // ab hier scheitert das Programm, ich kann wieder Input geben, aber zurück kommt nichts mehr
    case "yes":
        System.out.println("Nice. Me not. But I am still happy for you.");
        break;
    case "Yes":
        System.out.println("Nice. Me not. But I am still happy for you.");
        break;
    case "no":
        System.out.println("Nice. Me neither. So let's go on programming together. Would you like to?");
        break;
    case "No":
        System.out.println("Nice. Me neither. So let's go on programming together. Would you like to?");
        break;
    }
        String Programming = tests.nextLine();
    switch (Programming) {
    case "yes":
        System.out.println("Wonderful. I am sure we will have much fun together! Tell me now, do you know what an Integer is?");
        break;
    case "Yes":
        System.out.println("Wonderful. I am sure we will have much fun together! Tell me now, do you know what an Integer is?");
        break;
    case "no":
        System.out.println("Well this is sad. Java is a nice language, you should give it a try one day. See you then, " + Name + ". Have a great day.");
    }
        break;
    case "female":
        System.out.println("Nice. How about giving me your phone number?"); //ebenso hier, es wird kein Input angenommen
        break;
    case "Female":
        System.out.println("Nice. How about giving me your phone number?");
        String Number = tests.nextLine();
    switch (Number) {
    case ("yes"):
        System.out.println("Thank you very much. But I sadly can't write it down now, so maybe another time.");
        break;
    case ("Yes"):
        System.out.println("Thank you very much. But I sadly can't write it down now, so maybe another time.");
        break;
    case "no":
        System.out.println("That's sad, although I am so nice? Do you have a boyfriend?");
        break;
    case "No":
        System.out.println("That's sad, although I am so nice? Do you have a boyfriend?");
    String Boyfriend = tests.nextLine();
    switch (Boyfriend) {
    case ("yes"):
        System.out.println("Okay, then I wish you a good time with him. :) Would you like to program together with me?");
        break;
    case ("Yes"):
        System.out.println("Okay, then I wish you a good time with him. :) Would you like to program together with me?");
        break;
    case ("no"):
        System.out.println("Oh, okay. I wish you good luck finding one, because I think you are really pretty. Would you like to program together with me?");
        break;
    case ("No"):
        System.out.println("Oh, okay. I wish you good luck finding one, because I think you are really pretty. Would you like to program together with me?");
    }
    }
    }
}

}
 

Meeresgott

Bekanntes Mitglied
Also bei mir funktioniert dein Programm.
mit der Eingabe "name"--> "Male"--> "yes"
wenn du "male" eingibst ist ein break da und es kommt nicht zum Output.

1.Tipp: Schreibe Variablen namen immer mit dem Anfangsbuchstaben klein.

2. Tipp:
Schreibe
Java:
String football = tests.nextLine();
football.toUpperCase();
switch(football)
{
       case "YES":
             //tu was
}

dann hast du das Problem mit der Groß und Kleinschreibung nicht.

3. Tipp
Versuche deine Abfragen in verscheidene Methoden auszulagern damit du nicht ein
Code:
switch(String)
{
      switch(String)
     {
          //usw.
     }
]

hast.

lg
 

Deven

Mitglied
Hi, erstmal danke für deine Antwort.
Also football.toUpperCase(); sorgt dafür, dass die Worte die als Input kommen gleich ob zu Beginn groß oder klein geschrieben werden? Also die Methode, nicht das mit football.
Entschuldige, dass ich nochmal so genau nachfragen muss. Und woran könnte es jetzt bei mir liegen, dass es nicht funktioniert? Blöde Frage, ich weiß..
 

Meeresgott

Bekanntes Mitglied
Kein Problem :)

habe auch einen kleinen Fehler gemacht die Zeile
Java:
football.toUpperCase()
muss umgeändert werden in:
Java:
football = football.toUpperCase()

Aber ja genau toUpperCase() schreibt alle Buchstaben in dem String groß.

So das du nur nach eine Abfrage brauchst. also case "YES":

bei switch(Football) tritt dein Fehler auf, dass du nur wenn Male am anfangsbuchstaben großgeschreiben wird die weitere Abfrage kommt ob es ein Yes oder No ist.
 

Meeresgott

Bekanntes Mitglied
Java:
switch (gender) {
           
            case "MALE":
                System.out.println("Nice. Do you like football?");
                String football = tests.nextLine();
                football = football.toUpperCase();
               
                switch (football)
                { // ab hier scheitert das Programm, ich kann wieder Input geben, aber zurück kommt nichts mehr
                    case "YES":
                        System.out.println("Nice. Me not. But I am still happy for you.");
                       
                  
                    case "NO":
                        System.out.println("Nice. Me neither. So let's go on programming together. Would you like to?");
                       
                }
                String programming = tests.nextLine();
                programming = programming.toUpperCase();
                switch (programming) {
                    case "YES":
                        System.out.println("Wonderful. I am sure we will have much fun together! Tell me now, do you know what an Integer is?");
                       
                   
                    case "NO":
                        System.out.println("Well this is sad. Java is a nice language, you should give it a try one day. See you then, " + Name + ". Have a great day.");
                }
                break;
}

So klappt es bei mir zumindest. Du musst auch die breaks rausnehmen. Da sonst der ganze Switch block verlassen wird
 

Meeresgott

Bekanntes Mitglied
Genau :)
Kannst es auch mit toLowerCase() umsetzten wäre dann das selbe nur mit der Kleinschreibung.

Allerdings würde ich dir raten für eine ja/nein Frage eine Methode zu schreiben die boolnische Werte zurück gibt.

Code:
public class Test2 {
    public static void main(String[]aargs)
    {
        String s = "hallo";
        System.out.println(s);
       
        if(yesOrNo(s))
        {
            System.out.println("Yes");
        }
        else
        {
            System.out.println("NO");
        }
    }
   
    public static boolean yesOrNo(String answer)
    {
        answer = answer.toUpperCase();
       
        switch(answer)
        {
            case "YES":
                return true;
            case "NO":
                return false;
               
            default :
                System.err.println("Falsche Eingabe!");
                //Behandle deine Fehlermeldung !(Exception)
        }
        //Da keine Exception geworfen wird wird auch bei falscher Eingabe ein ja oder nein zurückgegeben.
        return false;
    }
}
 

Deven

Mitglied
Eines nach dem anderen, ich will erstmal machen was ich im Augenblick kann, in boolean bin ich noch nicht allzu sattelfest, aber danke für den Tipp. :)
Wenn ich es so mache wie du es beschrieben hast ohne die Breaks, dann erhalte ich bei der football Frage wenn ich mit yes antworte die Antworten auf yes und no. Ich hätte da jetzt ein Break hingesetzt.
 

Deven

Mitglied
Du hast mir sehr sehr geholfen, ich danke dir vielmals, du hast mir hoffentlich gerade meinen Ausbildungsplatz gesichert, gönn dir heute was! :p xD
 

VfL_Freak

Top Contributor
Moin,
keine Ahnung, ob jetzt dieser Thread und vor allem der Eingangscode noch relevant sind, aber ...

Java:
  switch (Gender) {
  case "male":
  System.out.println("Nice. Do you like football?");
  String Football = tests.nextLine();
  break;
  case "Male":
  System.out.println("Nice. Do you like football?");
  Football = tests.nextLine();
  switch (Football) { // ab hier scheitert das Programm, ich kann wieder Input geben, aber zurück kommt nichts mehr
so kann es auch nicht funktionieren !!
Der String Football ist hier nur lokal im case "male" bekannt !!
Du kannst weder im case "Male" etwas zuweisen noch anschließend ein switch darauf machen !!

Zudem: ob male oder Male solltest Du vorher checken und nicht so mühseelig per switch (dies gilt natürlich entsprechend für andere Teile deines Codes genauso) !
Schau mal in die API ... es gibt bspw. die Methode equalsIgnoreCase (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#equalsIgnoreCase(java.lang.String)), die könnte Dir da weiterhelfen!

Gruß Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
W Warum läuft mein Programm nicht? Java Basics - Anfänger-Themen 14
S Programm läuft nicht weiter, wie Code wiederholen? Java Basics - Anfänger-Themen 2
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
K Erste Schritte Netbeans Programm läuft nicht Java Basics - Anfänger-Themen 23
S Programm läuft in Eclipse, aber nicht über Konsole Java Basics - Anfänger-Themen 10
G Events schreiben, solange Programm läuft Java Basics - Anfänger-Themen 6
M Programm läuft nicht überall Java Basics - Anfänger-Themen 9
T Programm läuft nicht mehr... Java Basics - Anfänger-Themen 3
B Programm läuft mit 100% CPU-Last Java Basics - Anfänger-Themen 6
P Java Programm läuft nicht auf MAC Java Basics - Anfänger-Themen 7
J Programm läuft in Netbeans, aber nicht in der Konsole Java Basics - Anfänger-Themen 6
L Programm läuft nicht! Warum? Java Basics - Anfänger-Themen 5
G Mittels Runtime prüfen ob ein Programm läuft? Java Basics - Anfänger-Themen 18
B Programm läuft.aber objektorientiert genug? :( Java Basics - Anfänger-Themen 9
P jbuilder-Programm- Wie läuft es ohne jbuilder. Java Basics - Anfänger-Themen 3
D Warum läuft dieses Programm so langsam? Java Basics - Anfänger-Themen 5
P Programm läuft nur in der IDE Java Basics - Anfänger-Themen 14
D Programm läuft - trotzdem noch ein Fehler drin. Java Basics - Anfänger-Themen 21
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
M Wo hält das Programm an? Java Basics - Anfänger-Themen 11
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
Fugover Kopfrechnen-Programm Java Basics - Anfänger-Themen 6
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
A wie kann ich es in meinem Programm rein tun Java Basics - Anfänger-Themen 8
S Fehler beim Programm Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
A Lotto Programm Java Basics - Anfänger-Themen 3
S Programm erstellen Java Basics - Anfänger-Themen 3
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
M JAVA Programm in Website einbinden Java Basics - Anfänger-Themen 19
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
N Eclipse Programm normal ausführen Java Basics - Anfänger-Themen 1
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
G Programm Code Java Basics - Anfänger-Themen 5
CptK Achsenskalierung in Koordinatensystem hängt Programm auf Java Basics - Anfänger-Themen 5
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
Sajeel Chattha Dieses Programm umschreiben Java Basics - Anfänger-Themen 5
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben