Boolsche Ausdrücke - Wo ist mein Fehler?

Chizzo

Mitglied
Java:
package bool;

public final class Boolsch1 {
	private Boolsch1(){}

	public static void main (String[] args) {
		int a=0, b=0;
		boolean ma=false,
				mb=false;
		
		a = Integer.parseInt(args[0]);
		b = Integer.parseInt(args [1]);
		
		if (a>b) ma= true; else ma= false;
		if (b>a) mb= true; else mb= false;
		
		if (ma == true) System.out.println("a>b");
		if (mb == true) System.out.println("b>a");
}
}

Wenn ich das in Eclipse ausführen will bekomme ich die Meldung:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at bool.Boolsch1.main(Boolsch1.java:11)


Was mache ich falsch??
 
ich benutze Netbeans, da gibt es ein Feld in dem man Argumente eingibt.
Einfach: 2 3

die 2 wäre bei dir für a bzw. args[0]
die 3 wäre bei dir für b bzw. args[1]
 
Dankeschön! 🙂

Musste einfach die Zahlen nacheinander eingeben ohne Komma oder Zuweisung oder sonstiges... 🙂

Denke mal der nimmt sich die Zahlen einfach raus nach Anzahl meiner Variablen bzw deren erster Auflistung im Quellcode, oder?
 
Java:
 if (a>b) ma= true; else ma= false;
WENN die Bedingung TRUE ist, setze ma = true, ansonsten ma = false.
Überdenke den Satz nochmal und guck dir diesen Code an:
Java:
ma = (a>b);

Und dann guck dir diesen Code von dir nochmal an:
Java:
if (ma == true) System.out.println("a>b");
Wenn die Bedingung (ma == true) TRUE ist, führe aus.

ma(true) == true wäre: true
ma(false) == true wäre: false
Java:
if (ma) System.out.println("a>b");
 
Darauf:
Java:
if (a>b) ma= true; else ma= false;
=> ist equivalent zu
Java:
ma = (a>b);

Java:
if (ma == true)
=> ist equivalent zu
Java:
if (ma)
 
Vor allem sowas sollte man nicht schreiben:
Java:
if (ma == true)
vergisst man da einmal nen = und schreibt
Code:
if (ma = true)
ist die Bedingung plötzlich immer wahr und man ändert zudem noch ma.
 

Zurück
Oben