switch-cases werte zuordnen?

Status
Nicht offen für weitere Antworten.
L

{lullaby}

Gast
Hallo!

Es geht um eine "15 punkte challenge" in informatik. und zwar soll ich rausfinden ob es möglich ist des switch cases werte zuzuordnen.

wie zB, dass case 1 auf alle eingegebenen werte zwischen 20 und 50 zutrifft etc.


kann mir da jemand helfen`?

Wäre echt super nett :)

Lg
 

messi

Bekanntes Mitglied
Bitte mehr Input.

Sowas?
Code:
int wert = 29;
switch (wert) {
    case 20:
    case 21:
    ...
    case 49:
    case 50:
        //bla
        break;
}
 
L

{lullaby}

Gast
nee ich meinte eher dass ich dem case an sich einen wert wie zB 20<wert>50 angeben könnte...


heisst:

angenommen ein brief zwischen 20 und 50 g kostet 2,50€.

zwischen 50 und 100 3,00€.


dass ich dann quasi schreiben könnte :

switch (porto)

case 1 (vorher definiert durch zwischen 20 und 50) system.out.print("porto beträgt 2.50") etc.


also dass ich wie bei einer variable oben bereits den konstanten wert zuordne, wie bei int porto= 3 oder sowas.


danke für deine mühe. hoffe du hast jetzt verstandenw as ich meine?


Lg
 
N

na-oma

Gast
naja es geht schon in der Art:

so wie

Code:
if (porto > 0 && porto < 1)
 i = 1;
if (porto > 1 && porto < 3)
 i = 2;

switch(i)
case 1:
...

allerdings is das wohl nicht sinn der sache...
 

messi

Bekanntes Mitglied
Nein, verstanden habe ich es noch immer nicht. Aber ich wage noch einen Versuch:
Code:
double gramm = 78.4;
int wert = (int) (gramm / 10.0);
double porto;

switch (wert) {
    case 0:
    case 1:
        porto = 2.0;
        break;
    case 2:
    case 3:
    case 4:
        porto = 2.5;
        break;
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
        porto = 3.0;
        break;
    default:
        porto = 3.5;
        break;
}
In Java musst du bei einem switch-Kontrukt immer diskrete Werte angeben. Intervalle kannst du durch fall-throughs simulieren. Dabei lässt man halt einfach das "break" weg. Aber es gibt Sprachen (z. B. Pascal), die erlauben das Angeben von Wertebereichen bei einem "case", aber meistens ist dann ein fall-through nicht möglich.

Besser ist es aber, wenn du für so etwas "if" benutzt:
Code:
if (gramm < 20.0)
    porto = 2.0;
else if (gramm < 50.0)
    porto = 2.5;
else if (gramm < 100.0)
    porto = 3.0;
else
    porto = 3.5;
Aber das ist ja nicht die Aufgabe.

Manchmal ist es schwierig zu erahnen, was Profs eigentlich wollen. Nicht besser wird es, wenn deren Aufgaben von Dritten nur umschrieben wiedergegeben werden. Das "fall-through" ist schon etwas besonderes und Anfänger kommem da nicht sofort drauf. Dass das jetzt aber eine "Herausforderung" ist, wage ich zu bezweifeln.

14.11 The switch Statement
 

Sky

Top Contributor
{lullaby} hat gesagt.:
Es geht um eine "15 punkte challenge" in informatik. und zwar soll ich rausfinden ob es möglich ist des switch cases werte zuzuordnen.

wie zB, dass case 1 auf alle eingegebenen werte zwischen 20 und 50 zutrifft etc.

Geht es wirklich darum, ob es möglich ist, oder geht es darum wie es möglich ist!?

Naja, wenn Du ein "festes Intervall" hast so ist dies eigentlich relativ einfach möglich:
Code:
    int intervall = 20;
    int theValue = 10;
    int switchValue = theValue / intervall;

    switch( switchValue ) {
      case 0:
        System.out.println( "Wert ist zwischen 0 und 19" );
        break;
      case 1:
        System.out.println( "Wert ist zwischen 20 und 39" );
        break;
      case 2:
        System.out.println( "Wert ist zwischen 40 und 59" );
        break;
      default:
        System.out.println( "Wert ist >= 60" );
        break;
    }

Wenn dies nicht der Fall ist, so kannst Du u.U. über eine andere Berechnungsvorschrift darauf kommen. Ansonsten sehe ich -ohne groß darüber nachzudenken- nur die Möglichkeit mittelst if-else den case-Wert zu bestimmen. Vermutlich wird es dafür aber dann nicht die 15 Punkte geben!?
 

Bleiglanz

Gesperrter Benutzer
diese 15 Punkte kannst du dir kaum holen, man kann bei
Code:
switch(zahl)
wohl kaum irgendwas tricksen: das geht nicht!

es sei denn er akzeptiert den Trick mit einer Abbildung Bereich -> int, so wie alle bisher gezeigten Lösungen

0-10 -> 0, 11-20 ->1, 21-30 -> 2 usw.

(könnte man durch Einsatz von Enums sogar aufhübschen); aber dann heisst es ja plötzlich
Code:
switch(eineFunktionDavon(zahl))
und ob das im Sinne der Aufgabenstellung ist?

in der case Klausel MUSS ein zur Compile-Zeit (!) berechenbarer konstanter integraler Wert (oder ein Enum-Wert) stehen, also ist die Aufgabe ziemlich sinnlos
 

Nova

Bekanntes Mitglied
Hallo,

So geht es:

Beispiel Briefe:
0-50g 1 Euro
51-100g 2 Euro
101-250g 3 Euro
251g - 500g 4 Euro
>500g: 5 Euro

Code:
		int wert = 237; // Wert ist das Gewicht des Briefes, habs hier einfach mal fest mit 237g reingeschrieben
		double kosten;
		final int a = wert;

		switch (wert){
			default: // fällt durch
			case 0:{
				kosten = 1.0;
		    	if (wert <= 50) break;
			}
		    case 51: // nur falls wert >50
		    {
		    	kosten = 2.0;
		    	if (wert <= 100) break;
		    }
		    case 101: // nur falls wert >100
		    {
		    	kosten = 3.0;
		    	if (wert <= 250) break;
		    }
		    case 251: // nur falls Wert >250
		    {
		    	kosten = 4.0;
		    	if (wert <= 500) break;
		    }
		    case 501: kosten = 5.0; // nur falls Wert >500
		}
		System.out.println("Kosten: " + kosten);


Erklärung:
Man braucht den default-Fall um überhaupt mal reinzukommen. In default geht er immer rein, egal welche Zahl in "wert" steht.
Man kommt auf jeden Fall in "case 0", da beim default-Fall kein break steht, amn nutzt also die Eigenschaft des "durchfallens" aus. Die kosten werden jetzt auf 1 Euro gesetzt.
Ist der Brief leichter als 51g wird "break" aufgerufen, d.h. man springt aus dem switch raus. Ansonsten fällt man wieder durch ins nächste case, dort wird dann wieder entschieden ob der Brief leichter oder schwerer als 100 g ist usw.
Man kommt also nur z.B. in "case 51" wenn der Brief >=51g wiegt, in "case 101" wenn der Biref >=101g wiegt usw.


mfg
Nova


Edit:
hab den Code nochmal leicht umgeschrieben damit er verständlicher ist.
Edit2:
Mir fällt gerade auf das man "case 0" gar nicht braucht, könnte man auch in den default-Fall schreiben, wäre auch logischer:
Jeder Brief (=>default) kostet mindestens 1 Euro, wiegt der Brief mindestens 51g kostet er mindestens 2 Euro usw.
 

Bleiglanz

Gesperrter Benutzer
wozu die verneblungstaktik mit den vielen cases?
Code:
    switch (wert){
        default:
        {
          kosten = 1.0; if (wert <= 50)  break;
          kosten = 2.0; if (wert <= 100) break;
          kosten = 3.0; if (wert <= 250) break;
          kosten = 4.0; if (wert <= 500) break;
          kosten = 5.0; // nur falls Wert >500
        }
    }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
R Compiler-Fehler Auf selben Array in mehreren "cases" vom "Switch" zugreifen Java Basics - Anfänger-Themen 11
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 6
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
A switch statement Java Basics - Anfänger-Themen 4
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
Lion.King switch-Befehl Java Basics - Anfänger-Themen 6
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
1 Switch Case Java Basics - Anfänger-Themen 3
T Alternative für switch case Java Basics - Anfänger-Themen 1
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
B Notensystem Switch-Case Java Basics - Anfänger-Themen 31
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
H Frage zur if-Bedingung bzw switch case Java Basics - Anfänger-Themen 6
S switch case fängt beim letzten case an Java Basics - Anfänger-Themen 6
J Parameterübergabe in switch? Java Basics - Anfänger-Themen 2
M Switch Java Basics - Anfänger-Themen 2
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
NoMercy BitFlags Programm (switch on/off , swap und isSet) Java Basics - Anfänger-Themen 7
S Switch-Case für eine Array-Zuordnung Java Basics - Anfänger-Themen 5
S switch und case Java Basics - Anfänger-Themen 1
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
B Problem bei switch statement Java Basics - Anfänger-Themen 4
D Klassen Problem bei switch-case? Java Basics - Anfänger-Themen 2
E Input/Output Switch ausgabe anpassen bzw. anders darstellen Java Basics - Anfänger-Themen 13
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
X Nach switch case weiter mit Auswahl Java Basics - Anfänger-Themen 7
T switch case und continue Java Basics - Anfänger-Themen 5
D switch case Code Java Basics - Anfänger-Themen 3
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
Ponychan95 Erste Schritte Switch fällt immer bis zum default durch Java Basics - Anfänger-Themen 4
P Bei Switch-Anweisung wird default-Anweisung angezeigt Java Basics - Anfänger-Themen 4
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
O This in switch anweisung Java Basics - Anfänger-Themen 5
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
F Erste Schritte Switch case vs. Verschachtelte If Anweisung Java Basics - Anfänger-Themen 11
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
R Methoden Switch wählt das Falsche Java Basics - Anfänger-Themen 17
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
M Endlosschleife bricht durch switch ab Java Basics - Anfänger-Themen 17
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
D Array in switch Java Basics - Anfänger-Themen 3
A Switch Case Java Basics - Anfänger-Themen 5
Devil0s if vs. switch Java Basics - Anfänger-Themen 27
F Reset in der switch Anweisung Java Basics - Anfänger-Themen 3
R Switch Werte außerhalb verwenden Java Basics - Anfänger-Themen 2
D Eine Variable in mehreren "switch" Java Basics - Anfänger-Themen 24
M Switch mit String Java Basics - Anfänger-Themen 20
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
M Variablen Switch Bedingungen Java Basics - Anfänger-Themen 12
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
P Switch Case - Fließkommazahl Java Basics - Anfänger-Themen 2
Z Switch umsetzung Java Basics - Anfänger-Themen 6
lulas[]args Fehlerhafte Switch Java Basics - Anfänger-Themen 6
lulas[]args Switch Schleife - orphaned case Java Basics - Anfänger-Themen 27
W "switch" Anweisung - Rechenzeichen? Java Basics - Anfänger-Themen 5
T kleines problem mit switch case Java Basics - Anfänger-Themen 11
I Methoden Wochenkalendar switch anweisung fehlt Java Basics - Anfänger-Themen 4
C Switch Anweisung Frage Java Basics - Anfänger-Themen 8
R Switch/Case frage: Java Basics - Anfänger-Themen 12
Luk10 Frage zu Switch-Anweisung Java Basics - Anfänger-Themen 11
C Erste Schritte switch Anweisung geht nicht Java Basics - Anfänger-Themen 3
R Switch Abfrage: Found boolean but expected int? Java Basics - Anfänger-Themen 7
T Umschreiben von switch in if else und umgekehrt Java Basics - Anfänger-Themen 9
K Input/Output switch case - Parameterübergabe args[0] Java Basics - Anfänger-Themen 34
P Compilerfehler bei switch-case Java Basics - Anfänger-Themen 18
R 3 Datumsangaben sortieren mittels Switch Java Basics - Anfänger-Themen 9
J Switch mit if anweisung kombinieren Java Basics - Anfänger-Themen 2
D Kann man eine for-Schleife mit switch kombinieren? Java Basics - Anfänger-Themen 8
D Switch und Case Java Basics - Anfänger-Themen 3
F Ps to kW Konvertierer switch-case Problem Java Basics - Anfänger-Themen 4
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10
M '-1' in switch anweisung Java Basics - Anfänger-Themen 2
T Parser mit switch "Weg" ausgeben? Java Basics - Anfänger-Themen 5
Q switch case hier möglich Java Basics - Anfänger-Themen 10
A Switch-Case Problem Java Basics - Anfänger-Themen 17
A Do While mit Switch Case Java Basics - Anfänger-Themen 2
Luk10 switch - Problem Java Basics - Anfänger-Themen 9
S char im switch Java Basics - Anfänger-Themen 16
berti99 Switch-Case || Problem... Java Basics - Anfänger-Themen 6
R Switch-Case Selektion Java Basics - Anfänger-Themen 13
O Switch-Case - Case 4 erhöhen Java Basics - Anfänger-Themen 9
P Problem mit switch-Funktion Java Basics - Anfänger-Themen 5
K Ich verstehe switch einfach nicht Java Basics - Anfänger-Themen 4
M Frage zu Mehrfachauswahl mit switch ... case Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben