java - switch -> case frage [array]

12/28/2010 23:28 omer36#1
hey hey...

hab ein kleines problem, mit der switch - case abfrage mit nutzen von arrays...

Code:
switch (zuf){
  case wetten[0]:uebereinstimmungen[0] = 1;break;
}
zeigt der mir nen fehler an
Quote:
java constant expression required
, mit ner einfachen if-abfrage klappt es zwar, aber sieht mit switch-case sauberer aus, da es mehrere sind...

Code:
if (zuf == wetten[0]){
 uebereinstimmungen[0] = 1;
}
wie müsste das aussehen?

MfG
12/29/2010 02:01 .BritainAndy#2
switch(zuf) {
case wetten[0]:
uebereinstimmungen[0] = 1;
break;
}

hm, wüsste nicht wo da ein fehler ist.
Vll stimtm der syntax mit den arrays nicht
google spuckt irgendwas mit Compile time aus
12/29/2010 02:09 omer36#3
ja wurde durch google auch nicht schlauer, darum mein post hier :)

als fehler zeigt er mir diese stelle:

Code:
case wetten[0]:uebereinstimmungen[0] = 1;break;
          [COLOR="Red"]^[/COLOR]
zu dem fehler vermute ich iwie, dass ich den array (wetten) vorher iwie als constante deklarieren muss oderso...
aber... keine ahnung :D
kenn mich mit java noch nicht wirklich aus ^^

vllt hatt ja morgen einer ne antwort, wenn nicht ist es auch nicht so schlimm, da es mit if´s geht...
finde es nur "sauberer" mit switch/case...
12/29/2010 12:12 Cholik#4
Quote:
java constant expression required
Wie die Fehlermeldung schon sagt erwartet der Compiler bei der case eine Konstante... keine Variable oder Funktion die etwas zurückliefert.

Sprich...

Code:
...

case 0:
    break;

case 1:
    break;

case 2:
    break;

...
12/29/2010 13:21 omer36#5
hmmm danke danke, schade dass es so nicht klappt..
12/29/2010 19:05 MrSm!th#6
jop, switch-case muss compilertechnisch einfach mit constanten werten genutzt werden, etwas anderes als if, else if, else bleibt dir nicht übrig.
du kannst es natürlich in eine schleife packen, um es kürzer zu fassen ;>

Code:
for(int i=0; i<AnzhalDerWetten; i++)
{
    if(wetten[i] == zuf)
        uebereinstimmungen[i] = 1;
}
12/29/2010 19:27 omer36#7
Quote:
Originally Posted by MrSm!th View Post
jop, switch-case muss compilertechnisch einfach mit constanten werten genutzt werden, etwas anderes als if, else if, else bleibt dir nicht übrig.
du kannst es natürlich in eine schleife packen, um es kürzer zu fassen ;>

Code:
for(int i=0; i<AnzhalDerWetten; i++)
{
    if(wetten[i] == zuf)
        uebereinstimmungen[i] = 1;
}
daran hatte ich auch shcon gedacht, klappt aber aus ieinen grund nicht :D
nja sind eh "nur" 6 abfragen... ist also nicht sooo schlimm :D