FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

switch-statement Benutzung

switch-statement Benutzung 2005-11-13 20:28
Anonymer User
übungsblatt 4 verlangt, dass man für ein eingebenes jahr J folgendes macht:

- Für 1800 <= J <= 1899 ist m = 23, n = 4.
- Für 1900 <= J <= 2099 ist m = 24, n = 5.
- Für 2100 <= J <= 2199 ist m = 24, n = 6.

wie schreibe ich in der switch anweisung case 1800<=J<=1899 syntaktisch richtig auf?

Re: switch-statement Benutzung 2005-11-13 21:22
Slater
geht meines Wissens nicht, benutze ich aber auch nie ;)

wenn das so gleichmäßig ist wie da angegeben,
könntest du ja ganze Jahrhunderte abschneiden und switch 18, 19, 20, 21 machen


Re: switch-statement Benutzung 2005-11-13 21:25
Newton
1800<=J<=1899 kannst du nicht als switch-case machen. Mit case kannst du nur schauen, ob J gleich einem Wert ist, Sachen die du auch mit IF, == und ELSE machen könntest.
Siehe auch http://www.google.de/search?q=java+switch+case&hl=de&btnI

Bei kleiner-gleich, größer-gleich usw ist IF schon sinnvoller als ein 400zeiliges SWITCH ;)
Allerdings darfst du Vergleiche nicht so schreiben:
5 < Variable < 8sondern musst sie so schreiben:
5 < Variable [b]&&[/b] Variable < 8Das && ist eine logische UND-Verknüpfung, d.h. der Ausdruck ist nur wahr wenn sowohl das vor && wahr ist als auch das nach &&.

Der obere Ausdruck führt nicht zum gewünschten Ergebnis, weil der obere Code einzeln gelesen wird. Beispiel:
Erst wird die Aussage "Variable < 8" überprüft, sagen wir das ist true. Dann steht da noch "5 < true" und da meckert dann der Kompiler (in Java).

Re: switch-statement Benutzung 2005-11-13 21:31
Fred
- Für 1800 <= J <= 1899 ist m = 23, n = 4.
- Für 1900 <= J <= 2099 ist m = 24, n = 5.
- Für 2100 <= J <= 2199 ist m = 24, n = 6.
switch (J/100) { case 18: // 1800 - 1899 break; case 19: case 20: // 1900 - 2099 break; case 21: // 2100 - 2199 break; default: throw new IllegalArgumentException("falsches Jahr"); }

Re: switch-statement Benutzung 2005-11-16 00:50
Muelli
- Für 1800 <= J <= 1899 ist m = 23, n = 4.
- Für 1900 <= J <= 2099 ist m = 24, n = 5.
- Für 2100 <= J <= 2199 ist m = 24, n = 6.
Das sieht wie der Osterberechner aus ^^
Den soll man jetzt in Java machen? :(

und lol @ Fred

Re: switch-statement Benutzung 2005-11-16 01:00
pixartist
ja den hammir gestern in java geschrieben, hat sogar funktioniert xD

Re: switch-statement Benutzung 2005-11-16 11:25
Fred
lol @ Fred
Was gibt's da zu lachen?

Re: switch-statement Benutzung 2005-11-16 17:48
Newton
Mülli: Von den letzten Übungsbogen ( http://uni.commsy.de/commsy.php/Aufgabenblatt04.pdf?cid=221099&mod=material&fct=getfile&iid=41553 ) war ich allerdings (auch) ziemlich enttäuscht.
Wir sollten teilweise Sachen programmieren, bei denen das objektorientiere Prinzip einigermaßen sinnlos wirkte und/oder bei denen die Aufgabenstellung sehr schwammig war, teilweise sogar widersprüchlich. Auch war mir nicht so ganz klar, welcher Stoff (außer switch-case) denn da übermittelt werden sollte.