mehrer if bedigungen
Dave
- perl
hi!
ich habe ein verständnisproblem.
ich möchte folgende "if" abfrage machen: bedigung1 nicht gleich bedigung2 oder bedigung3
ich dachte das müsste eigentlich so aussehen:
if (($KA eq "20") && (($before ne "20") || ($before ne "21"))
nur funktioniert das nicht wirklich. das heisst die bedingungen || interessiert meine afrage überhaupt nicht.
was mache ich falsch?
Hallo,
ich möchte folgende "if" abfrage machen: bedigung1 nicht gleich bedigung2 oder bedigung3
if ( ($bed1 ne $bed2) || ($bed1 ne $bed3) )
Markus.
if ( ($bed1 ne $bed2) || ($bed1 ne $bed3) )
nein, du hast mich nicht richtig verstanden.
also nochmals: IF darf nur dann zu treffen wenn bedigung1 20 ist ABER bedigung2 NICHT 20 oder 21 ist!
gudn tach!
also nochmals: IF darf nur dann zu treffen wenn bedigung1 20 ist ABER bedigung2 NICHT 20 oder 21 ist!
ahaa!
if($KA eq "20" && !($before eq "20" || $before eq "21")){
// $KA ist '20' und $before ist weder '20' noch '21'
}
(! ist der "nicht-"operator)
oder
if($KA eq "20" && ($before ne "20" && $before ne "21")){
// ...
}
oder
if($KA eq '20' && $before!~/^2[01]$/){
// ...
}
naeheres: perldoc perlop
prost
seth
if($KA eq "20" && !($before eq "20" || $before eq "21")){
// $KA ist '20' und $before ist weder '20' noch '21'
}
> (! ist der "nicht-"operator)
>
> oder
>
> ~~~perl
> if($KA eq "20" && ($before ne "20" && $before ne "21")){
> // ...
> }
oder
if($KA eq '20' && $before!~/^2[01]$/){
// ...
}
>
> naeheres: [perldoc perlop](http://perldoc.perl.org/perlop.html)
Super! Herzlichen Dank! Genau das war mein Problem. Danke für deine Hilfe.
Hallo,
if ( ($bed1 ne $bed2) || ($bed1 ne $bed3) )
nein, du hast mich nicht richtig verstanden.
Ich habe genau das, was du beschrieben hast, angegeben. :)
Markus.
Hi,
(($before ne "20") || ($before ne "21"))
Damit das || true liefert, reicht es, wenn eins der beiden ne true liefert.
Wenn $before weder "20" noch "21" ist, sind beide ne true.
Wenn $before "20" ist, ist das zweite ne true.
Wenn $before "21" ist, ist das erste ne true.
Egal welchen Wert $before hat, mindestens eins der ne ist true.
nur funktioniert das nicht wirklich. das heisst die bedingungen || interessiert meine afrage überhaupt nicht.
Richtig.
Aus der Formulierung "bedigung1 nicht gleich bedigung2 oder bedigung3" ist aber nicht wirklich erkennbar, was Du eigentlich willst.
cu,
Andreas
ich dachte das müsste eigentlich so aussehen:
if (($KA eq "20") && (($before ne "20") || ($before ne "21"))
Warum vergleichst du eigentlich Zahlen mit Stringvergleichen?
Struppi.