Банальная программа. Но зависает., в чем же дело ? |
Здравствуйте, гость ( Вход | Регистрация )
Банальная программа. Но зависает., в чем же дело ? |
kvak |
6.5.2010, 8:01
Сообщение
#11
|
Студент Группа: Участник Сообщений: 51 Регистрация: 5.5.2010 Пользователь №: 1690 Спасибо сказали: 1 раз(а) Репутация: 0 |
Все. Понял. Спасибо.
Попробывал сегодня поменять этот же проблемный цикл, и заработало, когда стал использовать слово break для выхода. Но вот реально все равно не пойму почему в том случае, когда не работает, не срабатывает условие index =-1; Не работает и зависает
Работает как надо и очень быстро
Блин. Все. Теперь понял. Я вместо условия задал приравнивание. Тогда почему он вообще скомпилировал... Хотя нет. все-таки у меня все-таки было изначально index !=1 И это условие получается не выполнялось. for (int index = 0 ; index != -1; index++ ) { index = Engine.indexOf(vxod[a], index); ... Т.е. я понимаю так , что цикл должен прерываться в том случае, когда index станет равен - 1 Т.е. как я понял ошибка в том, что когда index становится - 1, то перед проверкой условия происходит index++ и поэтому он всегда 0. Так получается ? |
|
|
Litkevich Yuriy |
6.5.2010, 10:47
Сообщение
#12
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Тогда почему он вообще скомпилировал... потому что в этом месте оператор for всего лишь проверяет "тут ИСТИНА или ЛОЖЬ?", если результат выражения (в данном случае значение index) не нуль, значит ИСТИНА.тоже самое случается и в операторе if if (index = -1) тут компилятору не на что ругаться, он присвоит переменной index значение -1, это значение НЕ ЛОЖЬ = ИСТИНА, условие выполниться |
|
|
Текстовая версия | Сейчас: 30.1.2025, 2:54 |