# Entscheidungstabelle in Java umsetzen



## Ma_Do (17. Mai 2011)

Ich soll eine entscheidungstabelle, die abfragt ob ich einen Job annehmen oder ablehnen soll,  in Java umsetzen. Gehalt soll als Integer eingelesen werden, aufsteigschancen und Betriebsklima als char Variable.. 
als fehler taucht nun immer auf : operator ! bzw && cannot be applied to int

Mein Programm sieht momentan wie folgt aus:
ich hoffe mir kann jemand helfen.. ich steig da gar nicht mehr durch



```
import IOulm.*;

public class Entscheidungstabelle{
public static void main(String[] args){
	

	boolean B1 = true , B3 = true ;
	int B2 = 0;
	char Aufstieg;
	char Klima; 

/* Aktionen:
* A1: System.out.println("Job annehmen ");
* A2: System.out.println("Eventuell annehmen ");
* A3: System.out.println("Job nicht annehmen");
*/
	while ( Urc.readChar() ) {
		Aufstieg = Urc.getChar();
	  if ( B1 ) {
		if ( Character.isDigit (Aufstieg) ) {
	             Character.digit (ch,j);
		} else {
			Aufstieg = false;
			}
			
	if ( Urc.readInt()) {
	   B2 = Urc.getInt() ;
	   
	if (B2 >= 40000) {
	   B2 = true ; }
	else { B2 = false ; }
	
	
	if( Urc.readChar() ) {
		Klima = Urc.getChar();
	   if ( B3 ) {
		
	if ( Character.isDigit (Klima) ) {
	     Character.digit (ch,j);
		
	} else {
	  Klima = false;
	}
	
	
// Regeln
		if ( B1 && B2 && B3) { // A1
			System.out.println( "Job annehmen");
			}
			
		if ( B1 && B2 && !B3 ) { // A1
			System.out.println( "Job annehmen");
			}
			
		if ( B1 && !B2 && B3) { // A2
			System.out.println( "Eventuell annehmen");
			}

		if ( B1 && !B2 && !B3) { // A3
			System.out.println( "Job nicht annehmen");
			}
			
		if ( !B1 && B2 && B3) { // A1
			System.out.println( "Job annehmen");
			}
			
		if ( !B1 && B2 && !B3) { // A3
			System.out.println( "Job nicht annehmen");
			}
			
		if ( !B1 && !B2 && B3) { // A3
			System.out.println( "Job nicht annehmen");
			}
			
		if ( !B1 && !B2 && !B3) { // A3
			System.out.println( "Job nicht annehmen");
} }}}
}
}}}
```


----------



## Orolhawion (17. Mai 2011)

du versuchst in zeile 23 auf ein char ein boolean zu schreiben. das wird nicht klappen.


----------



## faetzminator (17. Mai 2011)

Zuerst ist B2 ein int mit dem Gehalt, und danach willst du die Variable plötzlich als boolean verwenden? Geht natürlich nicht. Verwende 2 Variablen.


----------



## SlaterB (17. Mai 2011)

damit die Übersicht zurückkehrt:

```
public class Test {

    public static void main(String[] args)  {
        int B2 = 0;
        if (!B2) { // geht nicht
            System.out.println("Ende");
        }
    }
}
```


----------



## Gast2 (17. Mai 2011)

Moin,

Du verwendest C (bzw. C++) Eigenheiten - das wird unter Java nicht funktionieren

folgendes geht eben nicht in Java - aber C (bzw. C++) [mal schnell kopiert]


```
int B2 = 0;
        if (!B2) { // geht nicht in Java
            System.out.println("Ende");
        }
```

Du musst direkt auf den Wert prüfen


```
int B2 = 0;
        if (B2 == 0) { // so gehts
            System.out.println("Ende");
        }
```

gleiches gilt für Char & Co ... Du musst unter Java immer mit einem Vergleichoperator arbeiten (==, !=, <, >) ... dann wird erst ein Boolean draus, mit welchem die IF-Anweisung arbeiten kann


----------

