Seite 1 von 1

Problem mit Rechner

Verfasst: 5. Mai 2004, 12:14
von Pänat
Hallo,
ich hab das Problem, dass das Ergebnis c nicht angezeigt wird. Ich weis nicht woran das liegt. Außerdem kann ich nicht den default Wert bei switch setzen, da er es als Fehler sieht. So sieht es momentan bei mir aus:

import java. io.*;

public class Rechner

{
public static void main(String[] args )
throws IOException
{
int a, b, c = 0;
int w;
BufferedReader din = new BufferedReader(
new InputStreamReader (System.in));

System.out.println("Bitte a eingeben: ");
a = Integer.parseInt(din.readLine());
System.out.println("Bitte b eingeben: ");
b = Integer.parseInt(din.readLine());
System.out.println("Bitte geben sie die Rechenart ein:");
w = Integer.parseInt(din.readLine());
switch (w)
{
case '1': c = a + b ;
break;
case '2': c = a - b ;
break;
case '3': c = a * b ;
break;
case '4': c = a / b ;
break;
}
System.out.println( "Ergebnis: " + c );
}
}

Verfasst: 5. Mai 2004, 14:41
von genius667
wenn du integer Werte in einer switch Anweisung hast, darfst du die nicht in Hochkomma schreiben, das musst du nur bei chars machen.
also hier:

case 1:
.
.
.
break;
case 2:
.
.
.
break;

usw

mfg

Andy

Verfasst: 5. Mai 2004, 14:55
von genius667

Code: Alles auswählen

import java. io.*;

public class Rechner
    
{
    public static void main(String[] args )
	throws IOException
    {
	int a, b, c = 0;
	int w;
	boolean erfolg=true;
	BufferedReader din = new BufferedReader(
						new InputStreamReader (System.in));
	
	System.out.println("Bitte a eingeben: ");
	a = Integer.parseInt(din.readLine());
	System.out.println("Bitte b eingeben: ");
	b = Integer.parseInt(din.readLine());
	System.out.println("Bitte geben sie die Rechenart ein:");
	w = din.read();
	switch (w)
	    {
	    case '+': c = a + b ;
		break;
	    case '-': c = a - b ;
		break;
	    case '*': c = a * b ;
		break;
	    case '/': c = a / b ;
		break;
	    default:
		System.out.println("tja Pech gehabt");
		erfolg = false;
		break;
	    }
	if(erfolg)
	    System.out.println( "Ergebnis: " + c );
    }
}
Das funktioniert jetzt, das einlesen geht einfach über din.read(), das ließt genau ein Zeichen ein (hab schnell in der api nachgeschaut.

mfg

Andy