Оптимизируйте логическое условие в операторах IF

#if-statement #optimization #conditional-statements #boolean-logic

Вопрос:

У меня есть следующие условия :

 if (a amp;amp; (b || c)) {
 await t1();
}
if(b) {
  await t2();
 }
 

Учитывая, что t2 следует выполнять ПОСЛЕ t1, есть ли способ оптимизировать эти условия ?

Комментарии:

1. Вы понимаете, что если a = false и b=true, то t2 будет выполнено, а t1-нет? Просто проверяю, потому что вы сказали, что t2 должно быть сделано после t1, просто не уверен, что вы имели в виду только после t1.

2. Точный. Выполнение t1 или t2 не обязательно, но если выполняются t1 и t2, T1 должен быть завершен до начала t2

3. Как их оптимизировать? Что здесь следует улучшить?

4. В этом случае, предполагая,что a, b и c являются переменными, я бы не стал беспокоиться об оптимизации скорости. Разница между лучшим и худшим случаем составит наносекунды и уменьшится к моменту t1 и t2. Оптимизируйте для удобства чтения — какой способ проще всего понять человеку, хорошо знакомому с продуктом.

Ответ №1:

Если b это возможно true , то следующее может быть немного быстрее, но я бы, вероятно, оставил все так, как у вас есть.

 if (b)
{
  if (a)
    await t1();
  await t2();
}
else
{
  if (a amp;amp; c)
    await t1();
}