Мастер (1310), решён 8 лет назад
много подобных условий, можно ли как то так сокращать?
сократить if ($x == 1 and ($y == 1 or $y == 2 or $y == 3)) вместо if ($x == 1 and $y == 1 or $x == 1 and $y == 2 or $x == 1 and $y == 3)) разбить вот так можно, if ($x == 1){ if ($y == 1 or $y == 2 or $y == 3)} но не в моем случае, условия более сложные в коде, поэтому интересует именно этот вопросЛучший ответ
Может использовать диапазоны, типа if($x ==1 && in_array($y, [1,2,3])){...
В массиве могут быть различные значения
А ещё фраза "много подобных условий" наталкивает на мысль о создании одной функции, которую можно будет везде вызывать)
Остальные ответы
может так?
if ($x == 1 and ($y>=1 and $y <= 3))
и еще можно убрать внутренний скобки
if ($x == 1 and $y>=1 and $y <= 3)
8 лет
блин не это имел ввиду, ну допустим вот так
if ($x == 1 and ($y == 1 or $y == 7))
вопрос можно ли использовать скобки? и будет ли это равносильно:
if ($x == 1 and $y == 1 or $x == 1 and $y == 7))
8 лет
скобки скорее всего нужны, потому что приоритет у операций and и or разный
$x == 1 and $y == 1 or $x == 1 and $y == 2 or $x == 1 and $y == 3
Разумеется это равносильно: $x == 1 and ($y == 1 or $y == 2 or $y == 3)
Вот именно для этого на первом курсе студентам-программистам дают дискретную математику, булеву алгебру, ДНФ/КНФ, законы де Моргана и поглощения и т. д. Да, есть формулы для упрощения подобных выражений, но их много разных для разных случаев.
А в данном случае прав Manunich.
8 лет
Первый результат из гугла: http://guap. ru/guap/kaf44/trud/erosh_diskr_mat.pdf
За пару месяцев вполне реально освоить, в жизни пригодится.
Все вопросы
Категории
Избранные