Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2007, 18:15   #1
huck_mid
 
Регистрация: 08.06.2007
Сообщений: 6
По умолчанию Логическое "ИЛИ"

Ув.программисты, такая ситуация - при использовании while мне нужно проверить два условия т.е while (g>5) or (h<6) do begin.....
While - будет выполняться пока не станет истинным первое или второе условие, так? Просто у себя я заметил, что проверяется первое условие и если оно истинно следует выход из цикла без проверки второго.... нипанятна. Объясните пожалуйста.
huck_mid вне форума Ответить с цитированием
Старый 16.06.2007, 18:38   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

While выполняется пока истинно хотя бы 1 из условий. Если первое истинно, то зачем проверять второе?

Ну если очень надо, чтобы выражение рассчитывалось полностью, то нужно ставить {$B+}.
Carbon вне форума Ответить с цитированием
Старый 16.06.2007, 19:30   #3
huck_mid
 
Регистрация: 08.06.2007
Сообщений: 6
По умолчанию

Почему когда j становится равным 1 выхода из цикла не происходит?
while (j<>1) or (str[j]<>' ')
do
dec(j);
Как организовать выход из цикла при истонности любого первого из условий? Не удивляйтесь если вопросы глупые, я не волшебник я только ......
huck_mid вне форума Ответить с цитированием
Старый 16.06.2007, 20:02   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

А чему равен str[1]?
Carbon вне форума Ответить с цитированием
Старый 16.06.2007, 20:18   #5
huck_mid
 
Регистрация: 08.06.2007
Сообщений: 6
По умолчанию

Равно любому символу, но не пробелу.
huck_mid вне форума Ответить с цитированием
Старый 16.06.2007, 20:23   #6
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,667
По умолчанию

huck_mid, код выложи.
Alar вне форума Ответить с цитированием
Старый 16.06.2007, 22:25   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от huck_mid Посмотреть сообщение
Почему когда j становится равным 1 выхода из цикла не происходит?
while (j<>1) or (str[j]<>' ')
do
dec(j);
тебе здесь надо and вместо or использовать, и все получится
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49