1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. oxypha

Beiträge von oxypha

  • if else problematik

    • oxypha
    • 3. April 2012 um 20:39
    Zitat von emptyvi

    Puh.. der Code.. ok..


    jah ich hab mir gedacht ich nehm die abkuerzung und mach aus meinem code fuers cli einen fuer n applet -- die while schleife war wohl ein relikt daraus =/ wie dumm..

    Zitat von emptyvi


    Du hast ne Methode, die nen String zurück gibt. Als erstes in der Methode hast du eine while-Schleife. In die kommst du rein.. oder auch nicht (wenn die Bedingung von Anfang an falsch ist. Kommst du nicht rein, hast du nirgendwo ein return stehen. Deshalb brauchst du nach dem while das return (für den Fall, dass du ins while gar nicht rein kommst.). Interessanter wäre, wozu du das while brauchst. Das ist aus meiner Sicht absolut unnötig.


    :fearful_face: danke -- wieso bin ich da nicht selbst drauf gekommen - ach wenn man nach zwei jahren wieder anfaengt und so einen schwachsinn fabriziert ist das peinlich.. (x

    Zitat von emptyvi


    Liegt an der while-Schleife. Du betrittst die Methode mit zwei gleichen Zahlen als Parametern. Ins while kommst du aber nur, wenn diese beiden Zahlen nicht gleich sind --> ganze while-Schleife wird übersprungen, du kommst direkt zum return unten. Wie gesagt, die while-Schleife ist nutzlos..


    danke..

    Zitat von emptyvi


    Verwendest du Java 7 oder 6? Java 6 konnte Stringvergleiche mit == noch nicht. Ansonsten fällt mir spontan nichts ein.


    6 -- hab einen mac und noch nicht herausgefunden wie ich java darauf update - da apple ja immer seinen eigenen kram drehen muss, was normal echt praktisch ist weil so ein richtig gutes OS rausgekommen ist aber manchmal eben echt nervig -- sollte dualboot mit ubuntu machen (x

    Zitat von emptyvi


    Allerdings.. was immer das wird (ein grafisches Zahlenratespiel?).. der Code ist ziemlich grauenhaft. Wenn du später mit == Abfragen musst, welche Usernachricht du zurückgegeben hast, um irgendetwas zu tun, schreit das geradezu nach Refactoring (Struktur deines Programms verbessern). Könntest beispielsweise ein Enum statt nem String zurückgeben, das ne toString() Methode hat. Enums kannst du sauber vergleichen, und den Text im Enum jederzeit nach belieben verändern, ohne dass es irgendwelche Auswirkungen hat.


    ja ein grafisches zahlenratespiel fuer eine freundin -- hab grad ein techn.-infostudium auf mitbelegung angefangen und bin dort eher mit programmen fuers cli beschaeftigt -- war also durch das graphische interface ein wenig abgelenkt -- danke - wenn meine fehler auch recht peinlich waren (x ja sollte das ganze auf alle faelle nochmal umschreiben -- betreffl. enum -- ja gute idee werd ich machen =)

    Zitat von emptyvi


    Liebe Grüße,
    emptyvi


    danke nochmal -- liebe gruesse,
    oxypha

  • if else problematik

    • oxypha
    • 3. April 2012 um 18:48

    hallo, ich habe zwei fragen vielleicht kann mir ja hier jemand helfen (x

    bei folgendem code:

    Code
    public class ZRF extends ZRFrame {        public static String zahlenraten (int input, UnbekannteZahl zuErraten) {                    
                                while(zuErraten.gleich(input)==false){
                                    if (input == 666) {
                                    return ""+zuErraten;
                                    }
                                    else if (input < 0 || input > 99) {
                                    //System.out.println("Nur Zahlen von 0 bis 99!");
                                    return "Nur Zahlen von 0 bis 99!";
                                    }
                                    else if (zuErraten.gleich(input)) {
                                    //System.out.println("Gratulation! Zahl erraten!");
                                    return "Gratulation! Zahl erraten!";
                                    }
                                    else if (zuErraten.kleiner(input)) {
                                    //System.out.println("Gesuchte Zahl ist kleiner.");
                                    return "Gesuchte Zahl ist kleiner.";
                                    }
                                    else {
                                    //System.out.println("Gesuchte Zahl ist größer.");
                                    return "Gesuchte Zahl ist größer.";
                                    }
                                }
                        return "Gratulation! Zahl erraten!";
            }
        }
    Alles anzeigen

    ich verstehe nicht wieso bei meinem einfachen code hier das letzte return nötig ist und wieso

    Code
    else if (zuErraten.gleich(input)) {return "Gratulation! Zahl erraten!";}


    einfach übergangen wird?
    genau wie später hier:

    Code
    if (x=="Gesuchte Zahl ist kleiner.") {...}
            if (x=="Gesuchte Zahl ist größer.") {...}
            if (x=="Gratulation! Zahl erraten!") 
            {...}
            else {...}


    bzw.:

    Code
    if (x=="Gesuchte Zahl ist kleiner.") {...}
            else if (x=="Gesuchte Zahl ist größer.") {...}
                   else if (x=="Gratulation! Zahl erraten!") {...}
                          else {...}

    solange man else nicht als kommentar kennzeichnet immer else herauskommt und sobald man es // auskommentiert funktioniert es?

    irgendwer eine idee warum das so ist?

    liebe gruesse, oxypha

Rechtliches

Impressum

Datenschutzerklärung