#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! + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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... + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#6 7. Mai 2010 AW: switch Anweisung äquivalent zu if Anweisung wieso bis unendlich? ^^ der code von EvulGurke passt doch perfekt + Multi-Zitat Zitieren
#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 ^^ + Multi-Zitat Zitieren