Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Взаимная блокировка условий if

ВСовкина Ученик (117), на голосовании 5 месяцев назад
При выполнении первого if, второе невозможно выполнить, но вот при выполнении второго, спокойно можно запустить первое условие , как его заблокировать если выполняется второе?
Голосование за лучший ответ
Татьяна Просветленный (36384) 6 месяцев назад
Чтобы заблокировать выполнение первого условия IF, если выполняется второе, можно использовать флаг, который будет указывать, что одно из условий уже выполнилось.
Ниже приведен код с использованием такого флага:
 VAR 
a, b: BOOL;
c: WSTRING;
condition_executed: BOOL; // Флаг выполнения условия
END_VAR

// Инициализация флага
condition_executed := FALSE;

IF a = TRUE AND NOT condition_executed THEN
b := FALSE;
c := "da";
condition_executed := TRUE; // Устанавливаем флаг
END_IF

IF b = TRUE AND NOT condition_executed THEN
a := FALSE;
c := "net";
condition_executed := TRUE; // Устанавливаем флаг
END_IF


В этом коде переменная condition_executed используется для отслеживания выполнения условий. Как только одно из условий выполнено, флаг устанавливается в TRUE, что предотвращает выполнение второго условия.
ВСовкинаУченик (117) 6 месяцев назад
Не работает
Похожие вопросы