Umschreiben von switch in if else und umgekehrt

ttobiw

Mitglied
Hallo,
fürs lernen auf eine Prüfung bräuchte ich von Euch etwas Hilfe beim Umschreiben einer if else Anweisungen in switch und umgekehrt. Vielen Dank!
Beispiel:
char c = eingabe();
String text;
switch (c) {
case '.': text = "Punkt"; break;
case ',': text = "Komma"; break;
case '+': case '-': text = "Plus oder Minus"; break;
} ausgabe (text);

Mein Problem – Die Casefälle ".";",";"+";"-" sind doch Zeichen oder?! Aber ich darf doch nicht schrieben:
{
If (c==.)

else (c==,)
….
else (c==+

else (c==-)


} System.out.println (text);

Oder? ^^
 
Beim switch-case hast du die Zeichen doch auch in Apostrophe gepackt. Was spricht dagegen, das beim if-else auch zu tun?
 
Ja
Java:
char x='a';
switch(x) {
    case 'a':
        // do something
    break;
    case 'b':
        // do something else
    break;
}
wird zu
Java:
char x='a';
if (x=='a') {
    // do something
} else if (x=='b') {
    // do something else
}
 
richtige Richtung, ja, abgesehen von Fehlern, aber letztere nennt dir dein Compiler,
und die grundsätzliche Funktionalität der neuen Lösung hättest du damit streng genommen auch testen können 😉
 
Demnach würde mein o.g. Beispiel als if-else Anweisung wie folgt lauten:

Java:
        char c = eingabe ();
    	String text;
    	 {
    	   if  (c == '.')
                text = 'Punkt';
           else if (c == ',')
        	    text = "Komma";
           else (c == '+' || c == '-')
                text = "Plus oder Minus";
          }
    	ausgabe (text);
 
nicht zwangsläufig wenn man syntaktisch korrekten Code möchte,
else mit runder Klammer direkt dahinter gibt es nicht
 
*arg* natürlich ... also ist das letzte "else" ein "else if". 😉

else steht ja sonst für alles andere ^^

Okay nun hab ichs - danke =)
 
Wenn du kein else definierst, könnte es aber sein, dass somit [c]text[/c] nie gesetzt wurde. Darum kriegst du da einen Compilerfehler. Entweder setzt du die Variable gleich auf Zeile 2 auf [c]""[/c] o.ä., oder tust dies in einem else-Block. Das gleiche gibts auch für das switch und nennt sich [c]default:[/c]. Man merkt, dass du es nicht ausprobierst 😉
 

Zurück
Oben