Java Divide by Zero??

Hallo,
ich habe ein Problem mit einer java-aufgabe aus der uni.

Code:
public class Statements {


    public static void main(String[] args) {
	boolean a = true;
	boolean b = true;

	int a1 = 12 % 10 + 24 * 3 / 12;
	int b1 = (~4 + 11 % 6) % 99;
	int c = (2 << 1 * 2) >> 2;
	int d = (2 << 1 * 2) >>> 2;
	int e = 1 | 2 & 3;
	boolean f = !a && b || a && !b;
	/*
	 * (i) f¨ur a = true und b = true (ii) f¨ur a = false und b = true (iii)
	 * f¨ur a = true und b = false (iv) f¨ur a = false und b = false
	 */
	int g = 12 + 15 / 4 + 9 / 4;
	double h = 12 + 15 / (double) 4 + 9 / 4.0;
	//double i = 4 / 12.0 + 4 / (1 / 3);
	boolean j = ((2 * 4) == (4 * 2)) || (0 == 1 / (1 / 3));
	//boolean k = ((2 * 4) == (4 * 3)) || (0 == 1 / (1 / 3));
	//boolean l = (2 * 4 == 4 * 2) | (0 == 1 / (1 / 3));

	System.out.println("a = " + a1);
	System.out.println("b = " + b1);
	System.out.println("c = " + c);
	System.out.println("d = " + d);
	System.out.println("e = " + e);
	System.out.println("f = " + f);
	System.out.println("g = " + g);
	System.out.println("h = " + h);
	//System.out.println("i = " + i);
	System.out.println("j = " + j);
	//System.out.println("k = " + k);
	//System.out.println("l = " + l);

    }

}

Bei den ersten drei ausgeklammernden Befehlen kommt immer ein "/ by zero" error.
Ich hab keine Ahnung wo das Problem liegt

Im voraus schon einmal
Vielen Dank für eure Hilfe
 
Hab zwar keine Ahnung von Java, aber für mich siehts so aus, als ob 1/3 = 0.333 auf 0 abrundet wird.
 
Ohne mir den Code angeschaut zu haben kann ich schonmal sagen, dass
Code:
1/3
tatsächlich 0 ergibt. Liegt daran, dass du hier 2 Ganzzahlen dividierst. Mach da einfach ein
Code:
1d/3d
draus, dann dividierst du zwei Dezimalzahlen.
 
Hallo!

ebenfalls möglich wäre ein Cast:

Code:
int a = 1, b = 3;
println (double)a / (double)b;

Gruß
Felix
 
Zurück
Oben