• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mehrere Bedingungen in if

hallo wie mache ich mehrere verschtelte bedngungen in if?
geht sowas in dieser richtung:
Code:
if ((hallo==1 && hallo ==2) || (bla==1 && bla == 5))
{tuwas();
}
in worten: tuwas wenn hallo gleich 1 und hallo gleich2 oder bla gleich 1 und bla gleich 5 ist
oder komme ich darum nicht herum:
Code:
if(hallo==1 && hallo ==2){tuwas();}
if(bla==1 && bla == 5){tuwas();}
bei mir ist der tuwas-Teil leider relativ lang und ich habe 8 solcher bedingungen bei denen immer das selbe passieren soll :/
PS: es geht bei meinem sanke-projekt um die richtungen.. wenn die, der aktuellen bewegungsrichtung entgegengesetzte, pfeiltaste gedrück wird soll die richtung beibehalten werden und nicht umgekehrt werden
gruß
 
Eine Variabel kann nicht gleichzeitig zwei Werte haben, das ist unlogisch.

EDIT: und wenn deine Bedingungen zu umfangreich sind, kannst diese auch in eine Funktion auslagern.
 
stimmt dummes beispiel :D ist aber irrelevant für die frage ;)
ich schließe dann mal daraus dass ich das in ne funktion packen muss und 8 einzelne bedingungen machen muss :/

edit: wie meinst du die bedingungen auslagern??? meinst du den inhalt also tuwas()??
 
Eine Funktion kann einen Rückgabewert haben:

Code:
if(istEsWahr(wert1, wert2)) tu_noch_was();

function istEsWahr(p1, p2) {
     return p1 == 1 && p2 == 2 || p1 == 2 && p2 == 1;
}
 
Ich denke er wollte lediglich auf das Prinzip heraus, dass man Bedingungen verschachteln kann... Was ja auch stimmt.

Hier ein paar Regeln:

Arithmetische Operatoren wie gewohnt: Punkt vor Strich, Klammern gehen vor.

Vergleiche und Verknüpfungen werden von links nach rechts abgearbeitet.
Code:
a < b < c  && c > d
// ist dasselbe wie
( ( a < b ) < c ) && ( c > d )

Zuweisungen werden von rechts nach Links abgearbeitet.
Code:
x = ( a = b * c + 4 ) + 8
// ist dasselbe wie
x = ( ( a = ( ( b * c ) + 4 ) ) + 8 )
 
Zuletzt bearbeitet:
wäre das also richtig?
Code:
function tastendruck (ereignis) {

                      window.richtung = window.a_richtung;
                        if (!ereignis)
                        ereignis = window.event;
                     richtung = ereignis.which || ereignis.keyCode;
                     if ((richtung == 37 && a_richtung == 39)||(richtung == 39 && a_richtung == 37)||(richtung == 38 && a_richtung == 40)||(richtung == 40 && a_richtung == 38)){
                     
                         richtung = a_richtung;
                     
                     }
richtung ist die neue richtung und a_richtung die alte
sind die richtungen entgegengesetz soll die alte richtung beibehalten werden
 
EDIT: Murks.

Ich seh gerade es sind ja zwei Variabeln. Vermutlich ist das richtig, aber es sieht blöd aus.


EDIT 2: da du aber richtung mit richtung_a gleichsetzt, wird die Bedingung nicht eintreten.
 
hat in diesem fall keine!
wenn man das substituiert(kann man das beinm programmieren sagen?)
sieht das so aus:
Code:
if(bed1||bed2||bed3||bed4)
tu das
daher die klammern oder geht das nicht?
 
Zurück
Oben