#if-statement #pseudocode
#if-statement #псевдокод
Вопрос:
Рассмотрим этот псевдокод:
if(p){
foo()
bar1()
}
if else(q){
foo()
bar2()
}
Есть ли способ избежать записи вызова функции foo() дважды? Я мог бы написать:
if(p||q){
foo()
}
...
Но это единственное решение?
Комментарии:
1. Почему бы вам просто не запустить foo перед выполнением условной проверки?
2. @enhzflep потому что могут быть ситуации, когда ни p, ни q не являются истинными, поэтому foo вообще не должен выполняться
3. @WinnieThePooh вызов одной и той же функции дважды в разных ситуациях не является проблемой. Фактически, это идея модульности. Это может быть личное мнение, но мне больше нравится первый способ, потому что он кажется мне более читаемым. И для вашего второго фрагмента вам понадобятся два дополнительных if, чтобы проверить, запускать ли bar1 или bar2
Ответ №1:
Имейте в виду, что нет проблем с вызовом одной и той же функции как из if, так и из else, одна из причин, по которой мы функционируем, это возможность повторного использования, и это правильный способ ее повторного использования.
Один из вариантов избежать вызова одной и той же функции:
if(p||q){
foo();
if (p){
bar1();
}
else {
bar2();
}
}
Также помните, что читаемость кода ОЧЕНЬ важна, и, хотя это основано на мнении, я думаю, что ваш способ понятнее