Logischer Fehler? Doppelte Bedingung
Frédéric
- perl
Hi,
Ich bin hier auf ein kleines Problem gestossen. Wahrscheinlich denke ich nicht logisch genug...
Wieso lässt sich diese doppelte Bedingung:
unless ($bedingung1) {
unless ($bedingung2) {
&fatal_error($error{21})
}
}
nicht so vereinfachen:
unless ($bedingung1 && $bedingung2) {
&fatal_error($error{21});
}
($bedingung1 und $bedingung2 = 0 oder 1)
Gruss,
Frédéric
Hallo Frédéric,
unless ($bedingung1) {
unless ($bedingung2) {
&fatal_error($error{21})
}
}
Hier wird fatal_error() (lass bitte das & weg!) ausgefuehrt,
wenn $bedingung1 falsch ist und $bedingung2 falsch ist.
unless ($bedingung1 && $bedingung2) {
&fatal_error($error{21});
}
Hier wird fatal_error() (lass bitte das & weg!) ausgefuehrt,
wenn '$bedingung1 && $bedingung2' (also die UND-Verknuepfung
von $bedingung1 und $bedingung2) false ergeben.
Gruesse,
CK
Hallo,
unless ($bedingung1 && $bedingung2) {
&fatal_error($error{21});
}Hier wird fatal_error() (lass bitte das & weg!) ausgefuehrt,
wenn '$bedingung1 && $bedingung2' (also die UND-Verknuepfung
von $bedingung1 und $bedingung2) false ergeben.
... darum genügt es hier, wenn nur eine der beiden Bedingungen false ergibt, dass die Funktion aufgerufen wird.
Damit das gleiche Ergebnis erziel wird müsse es
unless ($bedingung1 or $bedingung2) {
...
}
heißen, wobei mir diese Formulierung nicht so gefällt, da der Sinn vom (ungeübten) Betrachter nicht sofort erfasst werden kann.
Grüße
Klaus
Hallo Klaus,
... darum genügt es hier, wenn nur eine der beiden
Bedingungen false ergibt, dass die Funktion aufgerufen
wird.
Jepp.
Damit das gleiche Ergebnis erziel wird müsse es
unless ($bedingung1 or $bedingung2) {
...
}
heißen,
unless(statement) ist halt ein if(!(statement)). Und die
Negations-Regel sagt:
!(a && b) == !a || !b
Klammer-Regelung, wie in der Mathematik eben:
a * (x + y) == ax + ay
Gruesse,
CK
use Mosche;
!(a && b) == !a || !b
Klammer-Regelung, wie in der Mathematik eben:
a * (x + y) == ax + ay
<klugscheiss>Naja, das ganze heisste DeMorgan-Gesetz :-) </klugscheiss>
use Tschoe qw(Matti);
Hallo Matti,
a * (x + y) == ax + ay
<klugscheiss>Naja, das ganze heisste DeMorgan-Gesetz :-)
</klugscheiss>
Bitte was? Ich glaube, du meinst das 'Kommutativ-Gesetz' :)
Oder meinst du das auf boolsche Operatoren bezogen? Da habe
ich keine Ahnung, wie es heisst.
Gruesse,
CK
use Mosche;
a * (x + y) == ax + ay
<klugscheiss>Naja, das ganze heisste DeMorgan-Gesetz :-)
</klugscheiss>Bitte was? Ich glaube, du meinst das 'Kommutativ-Gesetz' :)
Kommutativgesetz würde bedeuten:
A && B == B && A
bzw.:
A || B == B || A
Oder meinst du das auf boolsche Operatoren bezogen? Da habe
ich keine Ahnung, wie es heisst.
Das kommt aus der Mengenlehre.
use Tschoe qw(Matti);