- 0
Какая конструкция кода более правильная?
Интересует мнение программистов, какая конструкция кода более правильная (скорость выполнения, читаемость и т.п.) и почему?
' (1)
If a > b Then
If a > c Then
' некоторый код
flag = True
Else
flag = False
End If
Else
flag = True
End If
' или
' (2)
flag = True
If a > b Then
If a > c Then
' некоторый код
Else
flag = False
End If
End If
3 ответа:
-
- 7
вторая конструкция лучше. заметьте, что flag становится в false только в одной ветке, и всё это разбивается на:
flag = not (a > b and a <= c) If a > b and a > c Then ' некоторый код End Ifили
c1 = (a > b) c2 = (a > c) flag = not (c1 and not c2) if (c1 and c2) then ' некоторый код end if -
- 4
Второй вариант короче — это плюс в плане читабельности.
По скорости выполнения — не занимайтесь преждевременной оптимизацией. Когда вы с помощью профайлера выясните, что ботлнек у вас именно в этом куске кода (что очень маловероятно), тогда и будете экспериментировать, что быстрее.
-
- 0
Из этих двух вариантов явно лучше второй. Как минимум потому, что там значение flag=true устанавливается только один раз. И читабельнее, опять же.