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

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » if in switch umwandeln » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (2): [1] 2 nächste » Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen if in switch umwandeln
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
InformatikJava12
unregistriert
if in switch umwandeln Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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?
13.11.2017 16:51
InformatikJava12
unregistriert
RE: if in switch umwandeln Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Kann mir jmd nur 3 Zeilen erklären. Wie ich switch verschachtle?
15.11.2017 08:58
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
15.11.2017 11:24 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
16.11.2017 18:42
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
16.11.2017 21:05 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Es gibt doch kein case A. Nur so etwas wie =<A. Kannst du mir sagen was ich da machen soll?
16.11.2017 21:41
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
16.11.2017 23:09 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
16.11.2017 23:56
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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?
17.11.2017 00:08 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ist es dann so:

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

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

so?
17.11.2017 07:52
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
17.11.2017 11:37 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wo ist denn das else zu Buchstabe D. Was ist da meine Alternative. Ich hänge noch da dran festunglücklich
17.11.2017 12:05
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
17.11.2017 13:50 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
17.11.2017 21:48
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
18.11.2017 03:02 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Seiten (2): [1] 2 nächste » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » if in switch umwandeln