Другие языки программирования и технологии
Как объединить два оператора " if "?
Есть два IF: if (1) {...;} if (2) {...;} каким образом их можно объединить? Реальное условие может как не удовлетворять ни одному if, так и удовлетворять одному из них, или же ОБОИМ СРАЗУ. Если реальное условие не удовлетворяет ни одному IF, тогда программа работает правильно. Если удовлетворяет одному из IF, тогда тоже программа работает правильно. Но если условие удовлетворяет ОБОИМ if, то программа работает не так, как мне нужно (т.е., естественно, срабатывает только один из этих if, хотя условие выполнено для обоих...) Подскажите, как бы их объединить, или какие конструкции использовать вместо if, в этом случае? case, например - там ведь тоже выбор только одного условия, или?! Язык action script, но те, кто знают С++, PHP, тоже подскажите, ибо синтаксисы оч. похожи.
if(усл1)
{
if(усл2)
{
// усл1, усл2
}
else
{
// только усл1
}
}
else
{
if(усл2)
{
// только усл2
}
else
{
// ни одно
}
}
{
if(усл2)
{
// усл1, усл2
}
else
{
// только усл1
}
}
else
{
if(усл2)
{
// только усл2
}
else
{
// ни одно
}
}
case
switch(x){
case(1): ...;
case(2): ...;
}
switch(x){
case(1): ...;
case(2): ...;
}
>Но если условие удовлетворяет ОБОИМ if, то программа работает не так, как мне нужно (т. е. , естественно, срабатывает только один из этих if, хотя условие выполнено для обоих... )
Ничего не естественно, если в ходе обработки первого if условие для второго не уничтожается.
А.... все понятно. Выше сказанное верно только когда нет безусловных goto ...
Вам нужно так:
if (((r1 == r2) && (r2 == r3) || (r3 == r4) && (r4 == r5))&&((r6 == r7) && (r7 == r8) || (r8 == r9) && (r9 == r10)))
{
w = ob * 2*2;
_root.l1gotoAndPlay = ("wo")
_root.l2gotoAndPlay = ("wo")
gotoAndPlay ("b")
}
elseif ((r1 == r2) && (r2 == r3) || (r3 == r4) && (r4 == r5))
{
w = ob * 2;
_root.l1gotoAndPlay = ("wo")
gotoAndPlay ("b")
}
elseif (r6 == r7) && (r7 == r8) || (r8 == r9) && (r9 == r10))
{
w = ob * 2;
_root.l2gotoAndPlay = ("wo")
gotoAndPlay ("b")
}
Ничего не естественно, если в ходе обработки первого if условие для второго не уничтожается.
А.... все понятно. Выше сказанное верно только когда нет безусловных goto ...
Вам нужно так:
if (((r1 == r2) && (r2 == r3) || (r3 == r4) && (r4 == r5))&&((r6 == r7) && (r7 == r8) || (r8 == r9) && (r9 == r10)))
{
w = ob * 2*2;
_root.l1gotoAndPlay = ("wo")
_root.l2gotoAndPlay = ("wo")
gotoAndPlay ("b")
}
elseif ((r1 == r2) && (r2 == r3) || (r3 == r4) && (r4 == r5))
{
w = ob * 2;
_root.l1gotoAndPlay = ("wo")
gotoAndPlay ("b")
}
elseif (r6 == r7) && (r7 == r8) || (r8 == r9) && (r9 == r10))
{
w = ob * 2;
_root.l2gotoAndPlay = ("wo")
gotoAndPlay ("b")
}
не правильно подсказал сори
Если два условия обоих операторов IF срабатывают, значит условие у тебя накосячено
или применить типа
if ( условие1 || условие 2 ) то верно
или применить типа
if ( условие1 || условие 2 ) то верно
чтобы объединить несколлько условий лучше работать с свичем и нескольким кейсами
Похожие вопросы
- Заменить цикл условным оператором if
- Язык программирования паскаль, оператор if-else
- Оператор IF...Then...ELSE
- Что такое оператор if в турбо паскаль ?
- Помогите пожалуйста. Нужен в программе цикл или можно обойтись оператором if? (прога внутри)
- оператор if C#
- Господа програмисты, пишите ли вы после оператора выбора if альтернативу else и пустой оператор{}?
- Как упростить программу на паскале. Т.Е. без оператора "inc" и "if .. in .. then else ...;"-13 строка.
- VBA. Чем заменить множествееное использование конструкции "If...Then"?
- Не могу правильно написать else if на Паскале