2013-08-21 2 views
0

Я имею путаницу, если заявлениеРазмещение кратного условия на Условный оператор

У меня есть как

if(hello==0 || bye==0) 
    { 
    echo 'error'; 
    } 

но если

hello==1 || bye==0 ИЛИ hello==0 || bye==1

, то он должен echo 'fine';

является их любым способом s, с помощью которого я могу поместить этот тип условия в оператор if?

EDIT

$numbers1=0; 
$numbers2=0; 

if(numbers1==0 || numbers2==0){ 
$percentage1 = ($numbers2/($numbers2 + $numbers1)) * 100; 
$parcentage2 = ($numbers1/($numbers2 + $numbers1)) * 100; 
} 

Вот почему я могу сделать прекрасный пункт в качестве основного утверждения

Warning: Division by zero 
+0

Итак, вы пытаетесь «эхо» отлично »;' когда * точно одна * из двух переменных является '1'? Или вы также позволяете обеим переменным быть «1»? –

+0

ya я должен отредактировать его, он должен показывать ошибку, только если обе обе переменные показывают 0 – user2615947

+0

Обычно это помогает, если вы добавляете тег для фактического языка, который вы используете, поскольку синтаксис, который вы опубликовали, относится к нескольким. (Вы можете изменить свой вопрос, чтобы сделать это сейчас.) Если мы знаем, на каком языке вы используете, это поможет вам быстрее получить ответ. –

ответ

1

О, вы могли бы просто do

if (($numbers1 + $numbers2) != 0) 
    echo 'fine'; 
else 
    echo 'error'; 

, чтобы убедиться, что результат $numbers1 и $numbers2 не равен нулю перед делением на него.

+0

ИЗОБРАЖЕНИЕ Я ИЗОБРАЖЕН, ПОЖАЛУЙСТА, СМОТРЕТЬ – user2615947

+0

Правильная работа: D Спасибо – user2615947

3

Похоже, что вы хотите:

if($hello==1 || $bye==1) 
{ 
    echo 'fine'; 
} 
else 
{ 
    echo 'error'; 
} 
+1

Это все еще не объясняет, почему ОП получает деление на 0 ошибок. –

+0

УБЕДИТЕСЬ, ЧТО Я ИЗОБРАЖЕН, ПОЖАЛУЙСТА, СМОТРЕТЬ ПОСМОТРЕТЬ, ПОЧЕМУ Я НЕ МОГУ ЛИ ЭТО УЧИТЬСЯ, ЧТО. – user2615947

+0

Cole «Cole9» Johnson - Thats главная проблема :( – user2615947

1

Посмотрите внимательно на свои условия.

Это работает, если нет другого возможного, кроме значения 0 или 1 (лучше использовать логическое значение в этом случае возможно)

if($hello==0 || $bye==0) 
{ 
echo 'error'; 
} 
else 
{ 
echo 'fine'; 
} 

Если вы хотите, чтобы защититься от нулевого значения, то просто использовать IsSet() в вашем условном выражении.

+0

УБЕДИТЕСЬ, ЧТО Я ИЗОБРАЖЕН ПОЖАЛУЙСТА, СМОТРЕТЬ СМОТРЕТЬ – user2615947

1

Похоже, вы хотите, чтобы избежать деления на ноль, которое может произойти, когда оба $number1и$number2 равны нулю.

if (0 === $number1 && 0 === $number2) 
{ 
    // division by zero 
} 
else 
{ 
    // perform your calculation 
} 

Одна вещь, вы не ясно: Может ли один или оба $number1 и $number2 быть отрицательным? Если да, то вы можете рассмотреть условие, когда сумма чисел равна нулю (согласно предложению @ sbat).

+0

Да, спасибо, я понял это :) – user2615947

0
if($numbers1!= 0 || $numbers2 != 0){ 
$percentage1 = ($numbers2/($numbers2 + $numbers1)) * 100; 
$parcentage2 = ($numbers1/($numbers2 + $numbers1)) * 100; 
} 

else 
{ 
echo 'error'; 

} 

Примечание, что вам не хватает знака доллара перед numbers1 и numbers2 переменных в вашей, если заявление. Удачи.

Смежные вопросы