PDA

Просмотр полной версии : [Вопрос] Оператор



Killer
29.12.2017, 14:18
Проблема с оператором, вроде все хорошо, но:


if(h == 0 || pInfo[playerid][pParkid] == 0) return true;

Если есть дом, но нет парковки. То действие не происходит. Как в таком случае быть? не первый раз сталкиваюсь с такой проблемой.

$continue$
29.12.2017, 14:23
Так || - или (h == 0 ИЛИ парковка == 0), то вернуть 1.

Наверное, h > 0 означает, что дом есть, не? (скорее всего h == 1).

Тогда получается, что так:


if(h > 0 && pInfo[playerid][pParkid] == 0)

Killer
29.12.2017, 15:26
Не правильно поняли суть моего вопроса.

Правильно, надо сделать так:

1. Если нет дома, но есть парковка. = return true;
2. Если есть дом, но нет парковки. = return true;

Такая вот логика, а то, что вы отправили, не то.

DeimoS
29.12.2017, 15:28
if(h != 0 && pInfo[playerid][pParkid] == 0 || h == 0 && pInfo[playerid][pParkid] != 0) return true;
Только для чего нужна такая проверка? Стоит хотя бы разные значения возвращать в разных случаях.
А если не важно какой именно случай, то уж проще так:

if(h != 0 || pInfo[playerid][pParkid] != 0) return true;

Nexius_Tailer
29.12.2017, 15:37
Как вариант:

if((h == 0) != (pInfo[playerid][pParkid] == 0)) return 1;

Killer
29.12.2017, 23:16
f((h == 0) != (pInfo[playerid][pParkid] == 0)) return 1;

Все равно эти все проверки не подходят. Не работает..

Разъясню суть проблемы более ближе. Нужно чтобы: либо парковка была, либо дом был. Чтобы произвести дальнейшее действие, если ничего нет,
то return true; А если что-то есть ( либо парковка, либо дом ), то производить дальнейшие действия. Я, наверное, до этого не правильно объяснил.

То что вы отправили выше, ни одна проверка не срабатывает.

DeimoS
29.12.2017, 23:46
if(h == 0 && pInfo[playerid][pParkid] == 0) return true;