Думал поседею...
От: misewk Украина http://misewk.ka92.info
Дата: 19.01.07 11:12
Оценка: 1 (1) :))) :))) :))) :)
Пишу проект — начал виснуть , начал искать ошибку, потратил много времени , когда нашел чуть не заплакал :

...
for (int iLoop = 0; iLoop < sa1.GetSize(); iLoop = 0)
...
Re: Думал поседею...
От: DOOM Россия  
Дата: 19.01.07 11:17
Оценка:
Здравствуйте, misewk, Вы писали:

M>Пишу проект — начал виснуть , начал искать ошибку, потратил много времени , когда нашел чуть не заплакал :


M>
M>...
M>for (int iLoop = 0; iLoop < sa1.GetSize(); iLoop = 0)
M>...
M>


Ну это в некотором смысле классика жанра...
Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам
Re[2]: Думал поседею...
От: Aptekar Россия  
Дата: 19.01.07 11:33
Оценка:
Здравствуйте, DOOM, Вы писали:
DOO>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам
i типа char или short?
Re[2]: Думал поседею...
От: Serpenter  
Дата: 19.01.07 11:37
Оценка: +2
Здравствуйте, DOOM, Вы писали:

DOO>Здравствуйте, misewk, Вы писали:


M>>Пишу проект — начал виснуть , начал искать ошибку, потратил много времени , когда нашел чуть не заплакал :


M>>
M>>...
M>>for (int iLoop = 0; iLoop < sa1.GetSize(); iLoop = 0)
M>>...
M>>


DOO>Ну это в некотором смысле классика жанра...

DOO>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам

как то аналогично искал ошибку в JScript нашел в строчке:
for (int i = 0; i < a; i++);
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Думал поседею...
От: DOOM Россия  
Дата: 19.01.07 12:49
Оценка:
Здравствуйте, Aptekar, Вы писали:

A>Здравствуйте, DOOM, Вы писали:

DOO>>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам
A>i типа char или short?
Слишком легко. А вот когда i — с плавающей точкой... Для плавающей точки существует момент, когда a+1 = a...
Re: Думал поседею...
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 19.01.07 13:44
Оценка:
Тоже как-то попался (copy-paste must die!):
for (int i = 0; i < a; ++i)
{
     for (int j = 0; j < b; ++i)
     {
          //...
     }
}
Re[4]: Думал поседею...
От: AlexWlad  
Дата: 19.01.07 18:11
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Здравствуйте, Aptekar, Вы писали:


A>>Здравствуйте, DOOM, Вы писали:

DOO>>>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам
A>>i типа char или short?
DOO>Слишком легко. А вот когда i — с плавающей точкой... Для плавающей точки существует момент, когда a+1 = a...

И тут встрял старый пасквилянт: "Ну ежели язык программирования позволяет переменную цикла объявлять как флоат... то это называется ПРЯМОЕ ВРЕДИТЕЛЬСТВО"
Re[4]: Думал поседею...
От: Andrew S Россия http://alchemy-lab.com
Дата: 19.01.07 19:02
Оценка:
A>>Здравствуйте, DOOM, Вы писали:
DOO>>>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам
A>>i типа char или short?
DOO>Слишком легко. А вот когда i — с плавающей точкой... Для плавающей точки существует момент, когда a+1 = a...

Это тоже слишком легко. А вот когда i — unsigned, вот тогда уже интереснее.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[2]: Думал поседею...
От: parapet  
Дата: 20.01.07 10:22
Оценка: :))
DOO>Ну это в некотором смысле классика жанра...
DOO>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам


for (i = a; i < b; i++)
{
    // здесь наши чудесные вычисления
    ...
    b++;
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Думал поседею...
От: _nn_ www.nemerleweb.com
Дата: 22.01.07 21:13
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Тоже как-то попался (copy-paste must die!):

И for вместе с ним
N>
N>for (int i = 0; i < a; ++i)
N>{
N>     for (int j = 0; j < b; ++i)
N>     {
N>          //...
N>     }
N>}
N>
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Думал поседею...
От: Alexey Borodin alexey-borodin@narod.ru
Дата: 23.01.07 14:07
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Здравствуйте, misewk, Вы писали:


M>>Пишу проект — начал виснуть , начал искать ошибку, потратил много времени , когда нашел чуть не заплакал :


M>>
M>>...
M>>for (int iLoop = 0; iLoop < sa1.GetSize(); iLoop = 0)
M>>...
M>>


DOO>Ну это в некотором смысле классика жанра...

DOO>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам

Если a>b первоначально.
Re[3]: Думал поседею...
От: DSD Россия http://911.ru/cv
Дата: 23.01.07 21:07
Оценка:
Здравствуйте, Alexey Borodin, Вы писали:

DOO>>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам

AB>Если a>b первоначально.
в таком случае просто не будет ни одной итерации. и что?
--
DSD
Re[4]: Думал поседею...
От: Alexey Borodin alexey-borodin@narod.ru
Дата: 26.01.07 11:25
Оценка:
Здравствуйте, DSD, Вы писали:

DSD>Здравствуйте, Alexey Borodin, Вы писали:


DOO>>>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам

AB>>Если a>b первоначально.
DSD>в таком случае просто не будет ни одной итерации. и что?

Ну, да ошибся. Баг есть, но бесконечным цикл не становится.
Собственно, тогда другая версия — тип i или b не является стандартным, а представляет из себя какой-нибудь класс, итератор например, где неправильно перегружена операция < или ++.
Re[2]: Думал поседею...
От: Plague Россия 177230800
Дата: 26.01.07 11:31
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Тоже как-то попался (copy-paste must die!):

N>
N>for (int i = 0; i < a; ++i)
N>{
N>     for (int j = 0; j < b; ++i)
N>     {
N>          //...
N>     }
N>}
N>


Я вот не использую J как переменную, т.к. спутать легко. у меня i,k,m,n...
Re[5]: Думал поседею...
От: DOOM Россия  
Дата: 26.01.07 11:43
Оценка:
Здравствуйте, AlexWlad, Вы писали:

AW>И тут встрял старый пасквилянт: "Ну ежели язык программирования позволяет переменную цикла объявлять как флоат... то это называется ПРЯМОЕ ВРЕДИТЕЛЬСТВО"


В скрипте можно просто не уследить, когда у тебя int станет float'ом...
Re[3]: Думал поседею...
От: mihasic Украина  
Дата: 26.01.07 15:43
Оценка:
Здравствуйте, Plague, Вы писали:

P>Я вот не использую J как переменную, т.к. спутать легко. у меня i,k,m,n...


Хм, "m" и "n" (в русской раскладке "т") имеют гораздо больше общего, чем i и j, при чем находятся совсем рядом... Может стоит занятся проверкой кода?
Re[5]: Думал поседею...
От: DK3981 Россия  
Дата: 29.01.07 11:35
Оценка:
Здравствуйте, Andrew S, Вы писали:

DOO>>>>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам

AS>Это тоже слишком легко. А вот когда i — unsigned, вот тогда уже интереснее.

Если бы в условии было бы i <= b, то при b = максимальное значение для данного типа цикл превращался бы в бесконечный.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Думал поседею...
От: Andrew S Россия http://alchemy-lab.com
Дата: 29.01.07 11:53
Оценка:
DOO>>>>>Прикольнее, когда честный (казалось бы) цикл for (i = a; i < b; i++) превращается в бесконечный. Как это может произойти — подумай сам
AS>>Это тоже слишком легко. А вот когда i — unsigned, вот тогда уже интереснее.

DK>Если бы в условии было бы i <= b, то при b = максимальное значение для данного типа цикл превращался бы в бесконечный.


b может быть signed. И отрицательным.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re: Думал поседею...
От: Mike Chaliy Украина http://chaliy.name
Дата: 29.01.07 17:39
Оценка:
Здравствуйте, misewk, Вы писали:

M>Пишу проект — начал виснуть , начал искать ошибку, потратил много времени , когда нашел чуть не заплакал :


M>
M>...
M>for (int iLoop = 0; iLoop < sa1.GetSize(); iLoop = 0)
M>...
M>


У меня самая распространенная ошибка


for(int i = 0; i < 100; i++)
{    
    someArray[0] = ....;
}
--------------------------------------
Українська Спільнота Розробникiв — http://dev.net.ua/
А тут я живу и пишу...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.