Java Switch-case < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 11:23 Di 09.10.2012 | Autor: | Maurizz |
Starte ich das Programme kommt:
error: incompatible types
case eingabe < 0
required int
found boolean
Von C kenne ich das er einfach vergleicht und ausführt. Hab ich nicht mit Integer.parseInt bereits zu int konvertiert? wegen der Fehlermeldung "required int". Oder muss ich noch eine boolean Variable definieren und in die switch Anweiung einfügen und jedes mal mit "falls true/false" etc. arbeiten?
import javax.swing.JOptionPane;
public class Zahlenraten
{
public static void main(String[] args)
{
int zahl = 6;
int eingabe;
eingabe = Integer.parseInt(JOptionPane.showInputDialog("Geben sie eine Zahl zwischen 0 und 10 ein: "));
switch (eingabe)
{
case eingabe < 0:
JOptionPane.showMessageDialog(null ,"Die Zahl ist kleiner 0...");
case eingabe > 0:
JOptionPane.showMessageDialog(null ,"Die Zahl ist größer 0...");
case eingabe == zahl:
JOptionPane.showMessageDialog(null ,"Richtige Zahl!");
case eingabe < zahl:
JOptionPane.showMessageDialog(null ,"Daneben.");
case eingabe > zahl:
JOptionPane.showMessageDialog(null ,"Daneben.");
break;
}
}
}
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:44 Di 09.10.2012 | Autor: | felixf |
Moin!
> Zahlenraten
> Starte ich das Programme kommt:
> error: incompatible types
> case eingabe < 0
> required int
> found boolean
>
> Von C kenne ich das er einfach vergleicht und ausführt.
> Hab ich nicht mit Integer.parseInt bereits zu int
> konvertiert? wegen der Fehlermeldung "required int". Oder
> muss ich noch eine boolean Variable definieren und in die
> switch Anweiung einfügen und jedes mal mit "falls
> true/false" etc. arbeiten?
Das Problem ist nicht das parseInt. Es liefert immer einen int zurueck, und schmeisst eine Exception falls es die Eingabe nicht versteht.
Das Problem ist die switch-Anweisung, genauer gesagt die case-Faelle. Schau dir mal genau an, wie so ein case-Fall aussehen darf. Bei dir hast du hinter case einen Vergleich, dessen Ergebnis nunmal ein Wahrheitswert ist - also ein boolean. Ein case braucht aber eine ganze Zahl (int).
Das ist genauso wie in C.
LG Felix
|
|
|
|