You are not logged in.

  • Login

1

Friday, May 11th 2007, 1:11am

Typecasting für Operator in einer IF-Abfrage?

Hallo,

folgende Sache.. ich lese einen Operator ein und wandle ihn für eine bessere Programmierung in einen Integer um.. jedoch muss ich für eine IF-Abfrage wissen, welcher Operator (+ oder -) eingegeben wurde.. nur leider kann ich innerhalb der If-Abfrage keine Typecasting machen, gibts vllt einen besseren Weg?

Java Quellcode

1
2
3
int operator = (int)'-';
 
if(var1 ((char)operation) var2==result){} //geht nicht..!!


Vielen Dank für einen Rat

lg.july

2

Friday, May 11th 2007, 2:13am

Klar geht das nicht. :-)
Das geht ja auch nicht:

Java Quellcode

1
if(var1 '-' var2==result){}

Es ist eben nicht gleich:

Java Quellcode

1
if(var1 - var2==result){}

Dir wir wohl nichts anderes übrig bleiben als sowas:

Java Quellcode

1
2
3
4
5
if((char)operation == '-' && var1 - var2==result){}
if((char)operation == '+' && var1 + var2==result){}
if((char)operation == '*' && var1 * var2==result){}
if((char)operation == '/' && var1 / var2==result){}
...

3

Friday, May 11th 2007, 9:02am

Moin

Außerdem sollte das ein perfektes Problem für eine switch Anweisung sein ;)

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int operatior = (int) irgendeinchar
 
switch (operator) {
	case 42:
		// mache mal (*)
	break;
 
	case 43:
		// mache plus (+)
	break;
 
	case 45:
		// mache minus (-)
	break;
 
	case 47:
		// mache geteilt (/)
	break;
 
	default:
		// Falsche Eingabe
	break;
}

4

Friday, May 11th 2007, 9:57am

Grundsatzfrage:
Ist der Cast nicht riskant:

Java Quellcode

1
int operatior = (int) irgendeinchar

Ich bin mir jetzt nicht sicher, ob Java immer die selbe Codetable verwendet. Wenn dem nicht so ist, dann sollte man von solchen Casts eher abstand nehmen.
Selbst wenn diese grundlegenden Symbole immer die selbe Nummer haben wäre es irgendwie unsauber.

5

Friday, May 11th 2007, 12:02pm

Danke für eure Ratschläge, habs nun ohne Typecasting gemacht.. so kann es auch keine Probleme geben..

Java Quellcode

1
if(operation=='+' && var1+var2==result){

Social bookmarks