# Scanner für char-wert/ if mit 2 bedingungen?



## torbo (12. Nov 2010)

Hallo! 

ich bin absoluter java-anfänger und stehe bei meinem aktuellen programm vor folgendem problem:

man soll zwei Zahlen und einen buchstaben eingeben, damit das programm ein ergebnis berechnet.

wie das mit int-werten funktioniert weiss ich bereits:

int a;
int b;
char c;

Scanner sc = new Scanner(System.in);

System.out.println("Geben sie xx ein:");
a = sc.nextInt();

und das selbe für b nochmals.. aber wie fahre ich mit dem char-wert fort?
geht das auch via Scanner..? "nextchar" gibt es ja scheinbar nicht. stehe etwas aufm schlauch 


So, 2. frage:

nach der eingabe soll das programm ja das richtige ergebnis berechnen, dafür wollte ich die if-methode verwenden. 
wie ich das mit einer einzigen bedingung mache (z.b. if (a=2) weiss ich. aber wie kann man 2 bedingungen miteinander verschachteln?

also: z.b. if (a=2 UND c= D).. ?

vielen dank schon mal! 
torbo


----------



## SlaterB (12. Nov 2010)

Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 2 Sprachbeschreibung
"2.6.1 Die if-Anweisung"
Unterpunkt "Zusammengesetzte Bedingungen"

es gibt tausende solcher Details in einer Programmiersprache..

-----

andere Frage: next().chartAt(0)


----------



## ARadauer (12. Nov 2010)

> if (a=2) weiss ich.


nö!!!
= ist eine zuweisung 
== ist der vergleich



> if (a=2 UND c= D).






> damit das programm ein ergebnis berechnet


nach welcher lokik?
ja
if (a=2 AND c= 'D')
..


----------



## bone2 (12. Nov 2010)

1. probier es mit nextByte
2. if (a == 2 && c == 'D') {}

Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 2.5 Ausdrücke, Operanden und Operatoren lesen


----------



## Volvagia (12. Nov 2010)

1) Ein char ist in Java 2 Byte lang, da die Variablen signed sind.
2) Ich würde es so machen:


```
private char readChar() throws InputMismatchException
{
	char c = 0;
	
	Scanner s = new Scanner(System.in);
	String input = s.nextLine();
	if(input.length() == 1)
		c = input.charAt(0);
	else
		throw new InputMismatchException("Input lenght is " + input.length() + ", 1 expected.");
	return(c);
}
```


----------



## BinaryLogic (12. Nov 2010)

Volvagia hat eine gute Lösung beigetragen, wenn du es simpel halten willst,
kannst du den Scanner auch gleich so benutzen:


```
Scanner scan = new Scanner(System.in);

c = scan.next().charAt[0]; // c ist deine char Variable
```

Ist natürlich nicht schön, aber wenn du es nur kurz für dich zum rumprobieren brauchst okay.

BinaryLogic


----------

