if in switch umwandeln

Neue Frage »

Auf diesen Beitrag antworten »
InformatikJava12 if in switch umwandeln

Hallo, ich bins wieder. Es geht um folgendes:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
if( buchstabe >= ’A’ && buchstabe <= ’F’) {
               if( buchstabe < ’D’) {
                   if( buchstabe < ’C’) { 
                       if( buchstabe > ’A’) { 
                          System . out . println ("B wie Berta ") ; 
                           }
                        else { 
                         System . out . println ("A wie Anton ") ; 
                     }
                   } else { 
            System . out . println ("C wie Caesar ") ; 
              } 
           } else { 
              if( buchstabe < ’F’) { 
                   if( buchstabe == ’E’) { 
                      System . out . println ("E wie Emil ") ; 
                } else { 
                     System . out . println ("D wie Dora ") ;
  
                  } 
                 } else {
            System . out . println ("F wie Friedrich ") ;
               } 
          } 
                } else { 
                 System . out . println (" Unbekannt ") ; 
 }


Das soll ich in Switch umwandeln. Wie soll das gehen. Wie verschachtle ich das?
 
Auf diesen Beitrag antworten »
InformatikJava12 RE: if in switch umwandeln

Kann mir jmd nur 3 Zeilen erklären. Wie ich switch verschachtle?
Auf diesen Beitrag antworten »
as_string

Wieso verschachteln?
Du musst doch nur ein ganz einfaches switch hinschreiben. Du verwendest doch Eclipse, oder? Schreib doch einfach mal switch hin und drücke Strg-Leertaste (also Autovervollständigung). Dann schreibt er doch ein switch-Gerüst schon hin.
Oder schau einfach irgendwo im Internet, wie man in Java ein switch macht.

Gruß
Marco
Auf diesen Beitrag antworten »
InformatikJava12

Also z.b wenn ich den 1. case habe. Soll ich da die Bedingungen aus den if verbinden.

Also
case buchstabe >= ’A’ && buchstabe <= ’F’ && buchstabe < ’C’ && buchstabe < ’D’ && buchstabe > ’A’:

System . out . println ("B wie Berta ") ;
break;

so? verwirrt
 
Auf diesen Beitrag antworten »
as_string

Nein: A ist ein "case", B ist ein eigener "case", etc.
Was ist denn die Ausgabe, wenn Du A hättest? Was ist die Ausgabe bei B? Diese if-else-Verschachtelung, die gegeben ist, ist doch so wie so unnötig kompliziert.

Gruß
Marco
Auf diesen Beitrag antworten »
InformatikJava12

Es gibt doch kein case A. Nur so etwas wie =<A. Kannst du mir sagen was ich da machen soll?
Auf diesen Beitrag antworten »
as_string

Doch, es gibt case a:
Versuchs einfach mal so rum zu sehen:
Die Variable "buchstabe" kann als Wert einen Buchstaben aufnehmen, also A, B, C, D, E, F, G, H, ...
Angenommen die Variable hätte den Wert A, was würde dann ausgegeben werden? Angenommen der Wert wäre B, was wäre dann die Ausgabe, was ist, wenn der Wert C wäre, was ist dann die Ausgabe, etc.?
Was ist, wenn die Variable buchstabe den Wert H hätte, wie sähe dann die Ausgabe aus.

Und jetzt machst Du einen switch-case für diese verschiedene Einzelfälle!

Gruß
Marco
Auf diesen Beitrag antworten »
InformatikJava12

Ich verstehe das einfach nicht. traurig Das einzige was ich sehe ist case E: System . out . println ("E wie Emil ") ;

Aber wie soll case A austellen wenn da steht z.b
if( buchstabe > ’A’) {
System . out . println ("B wie Berta ") ;


} unglücklich
Auf diesen Beitrag antworten »
as_string

Ja wenn buchstabe gerade 'A' ist, ist dann die Bedingung buchstabe > 'A' erfüllt oder nicht? Wenn die nicht erfüllt ist, was passiert denn dann mit dem if?
Auf diesen Beitrag antworten »
InformatikJava12

Ist es dann so:

case A:
System . out . println ("A wie Anton ") ;
break;

case C:
System . out . println ("C wie Caesar ") ;
break;

so?
Auf diesen Beitrag antworten »
as_string

Ja, und das dann natürlich für alle Buchstaben.
Was ist aber mit Buchstaben, die nach F kommen, also z. B. H oder auch R oder so. Da solltest Du schauen, ob Du noch eine default:-Behandlung im switch brauchst.

Gruß
Marco
Auf diesen Beitrag antworten »
InformatikJava12

Wo ist denn das else zu Buchstabe D. Was ist da meine Alternative. Ich hänge noch da dran festunglücklich
Auf diesen Beitrag antworten »
as_string

Ich verstehe die Frage nicht...
Geh doch einfach mal die if-else-Verschachtelung durch, dann wirst Du doch relativ schnell erkennen, dass es schlicht die Fälle gibt, wo buchstabe einen Buchstaben zwischen A und F hält und dann ein entsprechender Satz ausgegeben wird ("A wie Anton", wenn buchstabe == 'A', "B wie Berta" wenn buchstabe == 'B', "C wie Caeser" wenn buchstabe == 'C', "D wie Dora" bei buchstabe == 'D', "E wie Emil" bei buchstabe == 'E' und "F wie Friedrich" bei buchstabe == 'F'). Verstehst Du das so weit? Das hat ja alles noch nichts mit switch-case zu tun sondern schlicht damit, die if-else-Verschachtelung richtig zu folgen, was aber sooo schwer nun auch wieder nicht sein kann, oder?
Außerdem wird noch " Unbekannt" ausgegeben, wenn ein buchstabe keinen Buchstaben zwischen 'A' und 'F' hat.
Das jetzt noch in ein switch-case zu packen kann doch sooo schwer nicht sein, oder?

Gruß
Marco
Auf diesen Beitrag antworten »
InformatikJava12

Ok dann habe ich das
Switch{
case A:
System . out . println ("A wie Anton ") ;
break;
Case B:
System . out . println ("B wie Berta ") ;
break;
case C:
System . out . println ("C wie Caesar ") ;
break;
Usw. bis F und dann
defaut:

System . out . println (" Unbekannt ") ;
}
break;
Sorry dass ich solange gebraucht habe. Ich hoffe das ist richtig so jetzr LOL Hammer
Auf diesen Beitrag antworten »
as_string

Sieht prinzipiell soweit gut aus, außer das letzte break. Entweder weg lassen oder in die geschweifte Klammer mit rein. Dann macht man normalerweise keine Leerzeichen um die Punkte von zb System.out.println
Aber im Zweifelsfall: versuchs zu kompilieren und auszuführen. Wenn es das Richtige macht, passt es schon, denke ich.

Gruß
Marco
Auf diesen Beitrag antworten »
InformatikJava12

Danke danke. Jetzt habe ich es endlich verstanden. Tut mir leid für meine lange Leitung. Danke aber für deine Geduld Daumen hoch Daumen hoch smile Wink
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »