|
|
|
Будет ли вторая проверка условия в Если | ☑ | ||
|---|---|---|---|---|
|
0
xReason
25.02.11
✎
15:02
|
Кто значет точно логику 1С. будет ли трогать(!) вторую проверку на ключ если первая вернула Ложь
Если ЗначениеЗаполнено(Источник) и ЗначениеЗаполнено(Ключ) тогда КонецЕсли; В разных языках это обрабатывается по разному. И безопасный код требует разбивать это на два условия. Но как это в 1С ? |
|||
|
1
Asmody
25.02.11
✎
15:06
|
в 8ке "ленивая" проверка условий.
|
|||
|
2
Анютик
25.02.11
✎
15:06
|
(1) не будет...
|
|||
|
3
simol
25.02.11
✎
15:07
|
(0)не будет, проверяется легко
Если Ложь и 1/0 Тогда |
|||
|
4
y22-k
25.02.11
✎
15:07
|
(0)Напиши в табло
Ложь и Истина Ложь и ЛОЖЬ Истина и Ложь Истина и Истина и посмотри сам |
|||
|
5
zak555
25.02.11
✎
15:09
|
(1) почему ленивая ?
|
|||
|
6
simol
25.02.11
✎
15:09
|
(4)Ты не о том
|
|||
|
7
Asmody
25.02.11
✎
15:12
|
(5) яндексить "ленивые вычисления"
|
|||
|
8
xReason
25.02.11
✎
15:14
|
ясно спасибо. Значит можно дальше лабать в одну строчку.
В этом плане наверно самый ленивый язык это Ruby |
|||
|
9
zak555
25.02.11
✎
15:15
|
(7) так это "грамотная" проверка
смысл смотреть в И второй операнд, если 1ый ложный ? или смысл смотреть в ИЛИ второй операнд, если 1ый истинный ? |
|||
|
10
Живой Ископаемый
25.02.11
✎
15:15
|
||||
|
11
xReason
25.02.11
✎
15:19
|
Хорошо подсказали. такой код работает без ошибок
а=0; Если Ложь и 10/а тогда Сообщить("--"); КонецЕсли; |
|||
|
12
Живой Ископаемый
25.02.11
✎
15:20
|
||||
|
13
y22-k
25.02.11
✎
15:20
|
(9)ЗначениеЗаполнено(1) и ЗначениеЗаполнено(0)
напиши в табло Для тебя это будет открытием |
|||
|
14
zak555
25.02.11
✎
15:21
|
(13) 8ки нет
|
|||
|
15
xReason
25.02.11
✎
15:22
|
Табло скучная штука. Я дебагер люблю, он меня заводит ;)
|
|||
|
16
Fragster
гуру
25.02.11
✎
15:27
|
(13) в (9) все правильно
|
|||
|
17
Mitriy
25.02.11
✎
15:31
|
(13) местами поменяй...
|
|||
|
18
simol
25.02.11
✎
15:32
|
(12)Первая строчка отвалилась по проверке синтаксиса, а не по условию
|
|||
|
19
Живой Ископаемый
25.02.11
✎
15:37
|
(18) так лучше:
http://screencast.com/t/IhIMEuqDPy82 |
|||
|
20
Ненавижу 1С
гуру
25.02.11
✎
15:59
|
в некоторых языках это может выбрать сам разработчик:
if (a & b) //проверка всегда ОБОИХ условий if (a && b) //проверка второго только если первое истина |
|||
|
21
Asmody
25.02.11
✎
16:16
|
(8) самый ленивый язык - это wiki:Haskell
|
|||
|
22
Asmody
25.02.11
✎
16:18
|
(20) потому что первая строчка - это бинарное умножение, а вторая - логическое "И"
|
|||
|
23
Lys
25.02.11
✎
16:19
|
Извращенцы.
Напоминает поговорку про кота, которому нечего делать... |
|||
|
24
Ненавижу 1С
гуру
25.02.11
✎
16:27
|
(22) да, для типа bool бинарное умножение и логическое "И" не отличаются
|
|||
|
25
Живой Ископаемый
25.02.11
✎
16:28
|
2(2) какую поговорку?
|
|||
|
26
Живой Ископаемый
25.02.11
✎
16:29
|
2(23) "вы как те коты которым нечего делать"?
|
|||
|
27
Живой Ископаемый
25.02.11
✎
16:32
|
Мне это больше напоминает Шрёдинбаг
|
|||
|
28
Живой Ископаемый
25.02.11
✎
16:32
|
если уж про котов заговорили...
|
|||
|
29
John83
25.02.11
✎
16:34
|
хм... не знал, однако
|
|||
|
30
Lys
25.02.11
✎
16:35
|
(25) "Когда коту нечего делать - он себе я...ца лижет" =)
|
|||
|
31
Lys
25.02.11
✎
16:36
|
+(30) Я-то думал, что это известный б0ян...
|
|||
|
32
Живой Ископаемый
25.02.11
✎
16:37
|
2(31) первый раз слышу.
|
|||
|
33
Lys
25.02.11
✎
16:40
|
(32) С удовольствием пожал бы лапу настолько интеллигентному человеку=)
...хотя,возможно, в/на Украине народный фольклор просто немного отличается=) |
|||
|
34
xReason
25.02.11
✎
16:42
|
а вот если взять двух котов и их сравнить, то можно ли по первому коту понять, нужен ли второй кот?
|
|||
|
35
Lys
25.02.11
✎
16:43
|
(34) А если вместо двух котов представить две бутылки хорошего коньяку?
|
|||
|
36
xReason
25.02.11
✎
16:54
|
(35) А как их пить по OR или по AND ?
|
|||
|
37
Ненавижу 1С
гуру
25.02.11
✎
17:05
|
(36) по XOR
|
|||
|
38
Lys
25.02.11
✎
17:06
|
(36) Естественно, так:
Рюмка = Новый Рюмка("Коньяк", ВидРюмки.Пустая, ЧистотаПосуды.Чистая); Пока ЗначениеЗаполнено(Бутылка1) ИЛИ ЗначениеЗаполнено(Бутылка2) Цикл Источник = ?(ЗначениеЗаполнено(Бутылка1), Бутылка1, Бутылка2); Рюмка.Наполнить(Источник); Результат = Результат + Рюмка.Выпить(); Если Результат >= глЗначениеПеременной("ПорогОпьяненияДляОтключенияСеанса") Тогда Прервать; КонецЕсли; КонецЦикла; |
|||
|
39
stix2010
25.02.11
✎
17:06
|
коньяк №1 и коньяк №2
|
|||
|
40
stix2010
25.02.11
✎
17:07
|
отдайте мне, тару сдадите
|
|||
|
41
xReason
25.02.11
✎
17:12
|
(38) Боюсь, что условие
Если Результат >= глЗначениеПеременной("ПорогОпьяненияДляОтключенияСеанса") Тогда глючит будет. Как показывает практика по не зависящим аппаратным причинам происходят глюки и даже когда Результат уже превышает значение переменной. Цикл еще успевает сделать несколько итераций, что влечет потом тяжелый выходит из это процедуры Хорошо бы поставить туда прервать; , но обычно это не работает |
|||
|
42
xReason
25.02.11
✎
17:15
|
а еще я нашел забавную фичу на мисте, наверно кто-то знает про нее.
Что если в профиле поставить страна, то у других юзеров она будет такая же |
|||
|
43
stix2010
25.02.11
✎
17:16
|
Если Коньяк1 и Коньяк2 тогда
Пьете Коньяк1; //Коньяк2 вам не нужен, отдаете мне КонецЕсли; |
|||
|
44
Живой Ископаемый
25.02.11
✎
17:17
|
2(43) первое условие истина, значит второе нужно проверить.
|
|||
|
45
stix2010
25.02.11
✎
17:18
|
вот ведь
|
|||
|
46
stix2010
25.02.11
✎
17:29
|
опять же выпив коньяк1, коньяк2 можно не проверять, а так не бывает
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |