[Java] switch Anweisung äquivalent zu if Anweisung

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von coolatme, 7. Mai 2010 .

  1. 7. Mai 2010
    switch Anweisung äquivalent zu if Anweisung

    Hallo,

    ich muss grad für die FH ein paar Aufgaben machen. Switch hab ich eigentlich soweit drauf, möchte nur wissen, ob es eine elegantere Lösung hierfür gibt:

    Spoiler
    Schreiben Sie eine switch-Anweisung, die äquivalent zur folgenden if-Anweisung ist. Wie beurteilen Sie Ihre Lösung im Vergleich zur vorliegenden if-Anweisung?

    Code:
    if(n < 5 || n > 8 )
     System.out.println("Bereich 1");
    else if(n >= 5 && n <= 7)
     System.out.println("Bereich 2");
    else
     System.out.println("Bereich 3");

    Kleines Problem ist hierbei, switch darf ja nur konstante Werte haben, keine Intervalle. So, dann wär die einzige Möglichkeit, in die switchanweisung noch eine if Anweisung einzubauen. Gibts dafür keine andere Lösung?
    Bin mir da unsicher, was genau der Prof da hören will...

    Außerdem, wie würde ne if Anweisung in ner Switchanweisung aussehen?

    Dankeschööön, BWs sind natürlich looogisch!
     
  2. 7. Mai 2010
    AW: switch Anweisung äquivalent zu if Anweisung

    Code:
    switch(n)
    {
     case 5:
     case 6:
     case 7:
     print("Bereich2");
     break;
     default:
     print("Bereich1");
     break;
    }
    
    So würd ichs in C++ machen. Bereich3 trifft eigendlich nie zu außer n ist keine Zahl
     
  3. 7. Mai 2010
    AW: switch Anweisung äquivalent zu if Anweisung

    hm, die Überlegung hatte ich auch... also, dass Bereich 3 nie auftritt.
    aber n kann ja auch null sein... also,

    n = null;

    oder? dann würde ja das else auftreten...
     
  4. 7. Mai 2010
    AW: switch Anweisung äquivalent zu if Anweisung

    in c++ kannst du im case-statement auch ausdrücke verwenden...
    Code:
    switch(true) {
     case (n < 5 || n > 8):
     // etc...
    }

    @topic
    an deiner if/else-verzweigung ist nichts auszusetzen. wenns aber umbedingt mit switch/case gemacht werden muss, dann musst du eben alle zahlen abfragen wie in deiner if-abfrage.

    btw: bereich 3 existiert nicht

    aja, wenn du "n = null" verwendest aber n als int deklariert ist sollte der compiler eine exception werfen.
     
  5. 7. Mai 2010
    AW: switch Anweisung äquivalent zu if Anweisung

    ja okay, grad gelesen, primitive datentypen können nicht vom wert null sein.

    Ja gut, dann ist halt einfach bereich 3 weg... aber die aufgabe wär ja dann bissl blöd gestellt.

    und alle zahlen abfragen im unendlichen bereich wird schwer
    naja, wayne, bereich 3 fehlt dann einfahc, wenn ihr das auch so seht, bin ich auch davon überzeugt, danke... außer hier kommt einer der bei Sun arbeitet und weiß es besser
     
  6. 7. Mai 2010
    AW: switch Anweisung äquivalent zu if Anweisung

    wieso bis unendlich? ^^
    der code von EvulGurke passt doch perfekt
     
  7. 8. Mai 2010
    AW: switch Anweisung äquivalent zu if Anweisung

    jaja, passt schon, ich meinte darauf bezogen ", dann musst du eben alle zahlen abfragen wie in deiner if-abfrage."
    und ich hatte es falsch verstanden, weil wenns n int wär, müsste ich ja ziemlich viele cases schreiben (da ja kein Intervall erlaubt), also alles was kleiner und größer 6,7,8 ist und so... aber default macht das ja super, passt, nochmals danke ^^
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.