Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Java - If-Anweisung/Switch-Anweisung transformieren » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 4 Beiträge
CookieMonsta

BTW:

code:
1:
2:
3:
4:
if (n==0) foo();
if (n==2) bar();


usw, wäre dann ein switch case ohne break anweisungen
Groeten

Hey Kapitän... großes Grinsen


Ganz großes Danke für deine Erklärung!
Ist echt genial und beantwortet all meine Fragen!!! Daumen hoch



Grüße


PS: Bzgl. d. "Fallthrough": Würde den auch nicht direkt benutzen; bezieht sich hierbei auch nur auf reine, universitäre Theorie...
3FingerbreitNougat RE: Java - If-Anweisung/Switch-Anweisung transformieren

Hallo LL,

Willkommen an Board =)

IF bietet insgesamt mehr Flexibilität und hat auch einen anderen Anwendungsbereich als switch. Bei SWITCH kann man nur 1 Kriterium nehmen, bei IF sind sogar ganze Ausdrücke möglich (z.B. Funktionen als Bedingung).

Zitat:
da der sog. "Fallthrough" in IF so nicht umsetzbar ist.

Normalerweise möchte man auch keinen Fallthrough und ich empfehle dir auch ohne dieses "Feature" zu programmieren, da schnell Fehler auftreten.


IF(-ELSE) -> SWITCH:
Ist nur möglich wenn die if-Anweisung sehr simple Bedingungen hat wie Zahlen vergleichen o.ä.
code:
1:
2:
3:
4:
5:
6:
7:
if (n==0) {
    foo();
} else if (n==2) {
    bar();
} else {
    foobar();
}
wird zu
code:
1:
2:
3:
4:
5:
6:
7:
8:
switch (n) {
case 0: foo();
        break;
case 2: bar();
        break;
default: foobar();
       break;
}

(Hier könnte man die letzte break-Anweisung weglassen, da default normalerweise ganz unten steht (wegen Fallthrough)).

SWITCH -> IF(-ELSE):
Immer möglich. Du schreibst dass man hier keinen Fallthrough hat. Das stimmt, aber diese sollte ohnehin vermieden werden! Der Fallthrouth ist meiner Meinung nach ein Fehler unsauberer Programmierung.

In anderen Worten: Anders als du schreibst ist eine Umschreibung von SWITCH -> IF(-ELSE) immer möglich, solange du den Fallthrough nicht "willst".

MfG
Groeten Java - If-Anweisung/Switch-Anweisung transformieren

Meine Frage:
Hallo!

Ist es immer möglich eine If(-Else)-Anweisung in eine Switch-Anweisung zu transformieren und bzw. oder umgekehrt?!

Meine Ideen:
Also ich bin bislang bei dem Schluss, dass es immer möglich ist IF in SWITCH (abgekürzt geschrieben...) zu transformieren, sofern die Variable bei SWITCH gültig ist (=> char, byte, short, int) , da die if bzw. if-else, bzw. else Anweisungen einfach zu case1, case2 etc. sowie default umgeschrieben werden können.

Von SWITCH nach IF jedoch würde ich sagen, dass es nicht immer möglich ist, da der sog. "Fallthrough" in IF so nicht umsetzbar ist.


Liege ich mit meinen Meinungen richtig?! smile




Danke & viele Grüße