![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
БохЪ
Форумчанин
Регистрация: 30.09.2009
Сообщений: 724
|
![]()
Доброго всем! Нужно было поработать в страрой паскалевской среде TP 7.1 и наткнулся на очень, для меня по крайней мере, интересное исключение. вот например:
Код:
Код:
![]() По сути код не изменился, кроме пары лишних табов, а вот сама суть в корне меняется, если в первом случае (когда else привязан к первой проверке) Y будет равно 2, то во втором случае (когда else привязан ко втрой проверке) Y будет равен 1. Вот такая вот ситуация, интересно это баг или "так и задумано"? ![]() PS Да конечно нужно использовать ящики (begin end), но синтаксис позволяет и не использовать ![]() PSS Да конечно можете говорить что компилятор прав относя else ко второй проверке, но все же палка с двумя концами, так сказать...
В планах порабощение вселенной...
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]()
Есть стандарт, что гадать? Паскаль не Питон, где все решают пробелы.
|
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Ты словил эффект-обманку, когда "y" у тебя ничем не инициализируется, и может содержать случайный мусор, вот тебе и показалось что от пробелов зависит исход, но Паскаль не F# в нем нет такого прикола. ты просто увидел последствия использования неинициализированных переменных. Вообще оптимизатор должен был бы вышвырнуть этот код, ибо он никогда не выполнится.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 |
БохЪ
Форумчанин
Регистрация: 30.09.2009
Сообщений: 724
|
![]()
2Stilet, не, я знаю как надо, Y уже инициалзирован, присвоения X нет, да и условия выглядят совсем подругому в моем коде, я просто упростил то что нашел у себя
![]()
В планах порабощение вселенной...
|
![]() |
![]() |
![]() |
#5 | |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
![]() Цитата:
Код:
I am the First of Cyber Evolution...
I am the First to Program your Future... |
|
![]() |
![]() |
![]() |
#6 | |
Я
Форумчанин
Регистрация: 24.04.2010
Сообщений: 693
|
![]() Цитата:
Пример Код:
Код:
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©. |
|
![]() |
![]() |
![]() |
#7 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
![]()
if(){}else{} - красота
![]() |
![]() |
![]() |
![]() |
#8 |
New Delphi Coder
Форумчанин Подтвердите свой е-майл
Регистрация: 20.07.2008
Сообщений: 874
|
![]()
Все логично, что else относится к последнему ветвлению. Так и должно быть, а операторные скобки помогут.
p.s. Levsha100, без обид, но так бы и влепил минус за вечный и не уместный пиар с++ ![]()
Страх это слабость и потому, кто испугался уже побежден.
|
![]() |
![]() |
![]() |
#9 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2Mixasik
при чем тут с++? фигурные скобки используются во многих языках
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#10 |
New Delphi Coder
Форумчанин Подтвердите свой е-майл
Регистрация: 20.07.2008
Сообщений: 874
|
![]()
pproger, просто не впервые у него вижу такое и догадываюсь о чем речь. Ладно не буду разводить баталии. А причем тут фигурные скобки?) - мог бы спросить я.
Страх это слабость и потому, кто испугался уже побежден.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
загадка | NordKeeper | Свободное общение | 0 | 01.06.2010 18:45 |
загадка | NordKeeper | Помощь студентам | 0 | 01.06.2010 18:36 |
Загадка | Liones | БД в Delphi | 1 | 31.08.2009 12:33 |