Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Конструкция if...then...else в FB2.1. Баг или Фича. / 19 сообщений из 19, страница 1 из 1
02.06.2016, 17:08
    #39249378
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
Столкнулся с непоняткой (понимаю, что FB2.1 пройденный этап). Но всё же. Вот такая тестовая хранимка:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create or alter procedure TEST_PROCEDURE
returns (
    RESULT numeric(1,0))
as
declare variable COUNT0 integer;
begin

  result = 0 ;
  count0 = 2 ;
  if (count0>10) then
    if (count0=15) then
      result = 2 ;
  else
    result = 1 ;

  suspend ;
end


Результат выполнения - 0.
Если второй if ограничить begin...end:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
  result = 0 ;
  count0 = 2 ;
  if (count0>10) then
    begin
      if (count0=15) then
        result = 2 ;
    end
  else
    result = 1 ;


, то всё путём. Это баг, фича или надо запомнить?
...
Рейтинг: 0 / 0
02.06.2016, 17:14
    #39249389
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
KreatorXXIЭто баг, фича или надо запомнить?
Это стандартное поведение любого языка: относить else к ближайшему if. Поскольку телепатии
- нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.06.2016, 17:49
    #39249429
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
Да, я перегрелся. Но в своё оправдание - во многих других языках требуется явное окончание if. Привык к сишному синтаксису.
...
Рейтинг: 0 / 0
02.06.2016, 18:05
    #39249446
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
KreatorXXI,

и где же ты в сишном синтаксисе увидел явное окончание if. Ни с чем не путаешь? {} не считается это аналог begin...end
...
Рейтинг: 0 / 0
02.06.2016, 19:16
    #39249494
miwaonline
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
KreatorXXIНо в своё оправдание - во многих других языках требуется явное окончание if. Привык к сишному синтаксису

Кхм. Во многих других - это где? Из известных мне по синтаксису ЯП явное окончание if-a есть только в bash.
...
Рейтинг: 0 / 0
02.06.2016, 19:21
    #39249495
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
miwaonlineВо многих других - это где?
Это всякая скриптовая фигня типа LUA.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.06.2016, 07:39
    #39249707
Tonal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
Dimitry SibiryakovmiwaonlineВо многих других - это где?
Это всякая скриптовая фигня типа LUA.

Почему только скриптовых? Ада же !

А в http://erlang.org/doc/reference_manual/expressions.html] erlang так вовсе сопоставление с образцом, так что никаких неоднозначностей нет по синтаксису. :)
...
Рейтинг: 0 / 0
03.06.2016, 09:11
    #39249759
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
И тут они пошли мериться достоинствами...
...
Рейтинг: 0 / 0
03.06.2016, 10:22
    #39249827
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
Симонов ДенисKreatorXXI,

и где же ты в сишном синтаксисе увидел явное окончание if. Ни с чем не путаешь? {} не считается это аналог begin...end

Я это и имел в виду. Как правило, должно быть либо жёстко begin...end, либо if...end if. В каком ещё языке можно написать только один if?
...
Рейтинг: 0 / 0
03.06.2016, 10:29
    #39249836
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
KreatorXXIВ каком ещё языке можно написать только один if?MSX Basic, например
...
Рейтинг: 0 / 0
03.06.2016, 10:30
    #39249838
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
KreatorXXI,

да почти во всех. Например в Pascal и всех си-подобных языках (C, C++, Java, PHP, JavaScript ...). Pascal не требует обязательного begin..end, а си-подобные языки не требует обязательного {} после if.
PL/SQL оракла - это ада-подобный язык, в котором как раз есть end if. Наш PSQL больше похож на Pascal.
...
Рейтинг: 0 / 0
03.06.2016, 10:34
    #39249844
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
Симонов Денис,

Только если после THEN и ELSE только один оператор. В отличие от!
...
Рейтинг: 0 / 0
03.06.2016, 10:48
    #39249860
stelvic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
В питоне операторов может быть больше одного, при этом операторные скобки не требуются. :)
...
Рейтинг: 0 / 0
03.06.2016, 10:52
    #39249870
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
stelvic,

питон это позиционно зависимый язык, заставляющий определённым образом форматировать код.
...
Рейтинг: 0 / 0
03.06.2016, 11:36
    #39249938
alex_p_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
miwaonlineKreatorXXIНо в своё оправдание - во многих других языках требуется явное окончание if. Привык к сишному синтаксису

Кхм. Во многих других - это где? Из известных мне по синтаксису ЯП явное окончание if-a есть только в bash.

А как же эпичное КонецЕсли в 1С? :)
...
Рейтинг: 0 / 0
03.06.2016, 11:51
    #39249961
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
alex_p_n,

Оно вроде из VBA растет с евойным "End if"...
...
Рейтинг: 0 / 0
03.06.2016, 12:05
    #39249982
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
в 1С можно несколько веток:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Если А=1 Тогда

ИначеЕсли А=2 Тогда

ИначеЕсли А=3 Тогда

Иначе

КонецЕсли;
...
Рейтинг: 0 / 0
03.06.2016, 16:42
    #39250276
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
Naf> в 1С можно несколько веток:

Это один-в-один из Басика.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.06.2016, 16:43
    #39250277
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конструкция if...then...else в FB2.1. Баг или Фича.
KreatorXXI> Как правило ...
KreatorXXI> В каком ещё языке

Ей-Богу, откуда только такие берутся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Конструкция if...then...else в FB2.1. Баг или Фича. / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]