![]() |
|
Какое условие лучше использовать и есть ли разница | ☑ | ||
---|---|---|---|---|
0
Flempy
17.09.24
✎
08:25
|
Если Документ.Организация = "тест" и Документ.Подразделение = "Тестовое подразделение" Тогда ...
ИЛИ такое Если Документ.Организация = "тест" Тогда Если Документ.Подразделение = "Тестовое подразделение" Тогда ... |
|||
1
Мультук
17.09.24
✎
08:31
|
(0)
1) Условия проверяются Слева-Направо. В данном случае, если перовое условие ЛОЖЬ второе даже не будет вычисляться 2) Разница есть, ибо в первом случае будет одно ИНАЧЕ а во втором два ИНАЧЕ Если Документ.Организация = "тест" и Документ.Подразделение = "Тестовое подразделение" Тогда //что-то ИНАЧЕ Сообщить("Неправильная организация или подразделение. Что-то не то"); КонецЕсли; Если Документ.Организация = "тест" Тогда Если Документ.Подразделение = "Тестовое подразделение" Тогда //что-то ИНАЧЕ Сообщить("Неправильное подразделение. "); ИНАЧЕ Сообщить("Неправильная организация"); КонецЕсли; |
|||
2
ads55
17.09.24
✎
08:30
|
(0) "есть ли разница" - в первом случае можно получить "Ложь" в первой же строчке, а во-втором случае или в первой или во-второй, а что не понятно то?
|
|||
3
программистище
17.09.24
✎
08:34
|
"Нечем заняться – взяла начистила картошки и приготовила, соседей угости, там не знаю, кому-нибудь еще что-то сделай, помой полы, подъезд подмети." версия с цензурой
Второй вариант предполагает больше альтернатив без ИначеЕсли Первое предпочтительно если условие выполнения одно |
|||
4
Flempy
17.09.24
✎
08:33
|
(2) В плане оптимальности кода. Если не нужно получать "иначе" ни в одном из случаев, а лишь найти то, что проходит условие, получается лучше использовать оператор "и"?
|
|||
5
Гипервизор
17.09.24
✎
08:35
|
(4) Не занимайтесь преждевременной оптимизацией.
|
|||
6
ads55
17.09.24
✎
08:38
|
(4) в (1) посмотрите - там очень подробно расписано, в отличие от сформированного Вами вопроса. Так как никаких дополнительных условий у Вас в вопросе нет - то и явного ответа "что лучше" - не будет, на что Вам в (5) и указали.
|
|||
7
Ёпрст
17.09.24
✎
08:44
|
(0) в 8ке усеченная логика, проверяются условия операндов до первого и где ложь, поэтому, твой код равнозначен в обоих случаях.
|
|||
8
Ёпрст
17.09.24
✎
08:47
|
В клюшках не так, там проверяются все операнды, и была бы ошибка синтаксиса или ошибка выполнения, например, если писать такое:
Если (1<>1)и (1/0=0) тогда Была бы ошибкп деления на 0. В снеговике, ошибки не будет, ибо 2 операнд тупо не выполняется |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |