if Abfrage mit Division durch Null

Corben

Mitglied
Hallo Java Community,

Hier erstmal der Code:
Java:
public class Übung05 {

	public static void main (String args[]){
		
		int t = 0;
	      
        if ((t != 0) && ((27 / t) < 3)) {
            System.out.println("Der Wert von t ist nicht 0.");
        } 
        else {
            System.out.println("Der Wert von t ist 0.");
        }
        
        if ((t != 0) || ((27 / t) < 3)) {
        	System.out.println("/n ok");
        }

Und zwar: Warum sorgt diese if-Abfrage:
Java:
 if ((t != 0) && ((27 / t) < 3))
für keinen Fehler aber die unten (l 14) mit dem oder sehr wohl, nämlich genau der Fehler den ich erwarte:
Code:
Exception in thread "main" java.lang.ArithmeticException: / by zero

Das ist nur ne Übung, einen tieferen Sinn hat der Code denke ich nicht 🙂
 
Hallo,

das ist logisch, denn wenn ich false && XXX habe, dann kann das gesamte niemals true werden. Daher braucht man auch nciht weiter zu schauen.

Anders ist es, wenn ich nur & verwende.

Wenn man true || XXX habe, dann ist das automatisch true, egal was folgt. Anders ist es bei dem | Operator, da hier immer erst alle ausgewertet werden.

JAVA: 3.3.5 Logische Operatoren
 
Zuletzt bearbeitet von einem Moderator:
Grundsatz der Mathematischen Aussagenlogik "Falschem folgt immer falschem"

"Die Kühe sind grün und mein Computer sind on" --> "falsch und richtig"->Aussage: falsch
 
Jepp, danke ich habs.
Wenn ichs so schreibe wird kein Fehler ausgegeben:
Java:
if ((t == 0) || ((27 / t) < 3)) {
        	System.out.println("/n ok");
        }

mir war nur nicht bewusst, dass wenn das erste schon passt (bei ||) oder eben nicht (bei &&) er garnicht weiter guckt. Eigendlich natürlich logisch.
 

Zurück
Oben