Dave: mehrer if bedigungen

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?

  1. Hallo,

    ich möchte folgende "if" abfrage machen: bedigung1 nicht gleich bedigung2 oder bedigung3

      
    if ( ($bed1 ne $bed2) || ($bed1 ne $bed3) )  
    
    

    Markus.

    --
    http://www.apostrophitis.at
    Maschiene währe Standart Gallerie vorraus Packete Objeckte tollerant
    1. 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!

      1. 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

        1. 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.
          
      2. 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.

        --
        http://www.apostrophitis.at
        Maschiene währe Standart Gallerie vorraus Packete Objeckte tollerant
  2. 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

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  3. 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.