Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> || в while 
:(
    Опции темы
Kirgston
Дата 8.4.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



mes, вот посмотрите... как написал код xvr . Я так же написал... и так же понимаю как он будет действовать... только почему если я использую код то ... он работает как И а не как ИЛИ? 

Извините пожалуйста... просто я не понимаю до конца, но очень хочу разобратся! Может проблема в среде? Билдер 2009 Ап2
PM MAIL   Вверх
mes
Дата 8.4.2009, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Kirgston @  8.4.2009,  09:50 Найти цитируемый пост)
mes, вот посмотрите... как написал код xvr .

посмотрел.

Цитата(Kirgston @  8.4.2009,  09:50 Найти цитируемый пост)
и так же понимаю как он будет действовать... только почему если я использую код то ... он работает как И а не как ИЛИ? 

работает как И  это как ?




--------------------
PM MAIL WWW   Вверх
Kirgston
Дата 8.4.2009, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Ну когда я в коде поставил || то цыкл ждал пока оба значения не станут меньше нуля... но там же стоит ИЛИ... смотрите первый мой пост... там код просто ждал пока оба значения не станут меньше нуля... но вроде при || программа должна ждать пока одна  из переменных не станет меньше нуля...
PM MAIL   Вверх
mes
Дата 8.4.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Kirgston @  8.4.2009,  10:14 Найти цитируемый пост)
Ну когда я в коде поставил || то цыкл ждал пока оба значения не станут меньше нуля... н

правильно делал.. Это Вы опять выражаете видимое кверх ногами. Откуда меньше ?!  smile  не выдумывайте того чего нет.  smile 
Цикл ждет(выполняется) пока первое ИЛИ второе значение будет больше 0. 



Это сообщение отредактировал(а) mes - 8.4.2009, 11:27


--------------------
PM MAIL WWW   Вверх
xvr
Дата 8.4.2009, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Kirgston @ 8.4.2009,  11:14)
Ну когда я в коде поставил || то цыкл ждал пока оба значения не станут меньше нуля... но там же стоит ИЛИ... смотрите первый мой пост... там код просто ждал пока оба значения не станут меньше нуля... но вроде при || программа должна ждать пока одна  из переменных не станет меньше нуля...

Цикл while ничего не ждет - он выполняется, ПОКА его условие ИСТИННО. В вашей трактовке 'цыкл ждал пока оба значения не станут меньше нуля' нужно понимать так - цикл ЗАКОНЧИЛСЯ, когда оба значения стали меньше или равны нулю. Как вы понимаете, 'ВЫПОЛНЯТЬСЯ' и 'ЗАКОНЧИТСЯ' - это 2 диаметрально противоположных условия. В while записывается первое - условие ПРОДОЛЖЕНИЯ цикла. Вы пытаетесь его трактовать как второе - условие ОКОНЧАНИЯ, а это ИНВЕРСИЯ условия в while.

Т.е. цикл - while((us_hp>0)   ||  (ai_hp>0))
Условие, при котором цикл БУДЕТ ВЫПОЛНЯТСЯ - (us_hp>0)   ||  (ai_hp>0)
Условие при котором он ЗАКОНЧИТСЯ - !( (us_hp>0)   ||  (ai_hp>0) ) 
   или (что то же самое)  (us_hp<=0)   &&  (ai_hp<=0)

PM MAIL   Вверх
Fazil6
Дата 8.4.2009, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Цитата(Kirgston @  8.4.2009,  10:18 Найти цитируемый пост)
ну я же не слепой. Я ставлю || и он у меня работает как && ! Взял из учебника. || - логическое или, && - логическое И. Когда я ставлю Или то или другое... оно ждет пока 2 значения опускаються в "меньше нуля". 


Цитата(Kirgston @  8.4.2009,  10:18 Найти цитируемый пост)
Ребята... пожалуйста обясните по простому... почему у меня && работает как || то есть он ждет пока одна из переменных не станет меньше нуля, а || работает как &&... то есть он ждет пока обе из переменных не будут меньше нуля... почему так? 

покачану, все правильно у тебя работает.  ТЫ НЕПРАВИЛЬНО представляешь себе как оно должно работать.

Добавлено через 7 минут и 22 секунды
Цитата(Kirgston @  8.4.2009,  11:14 Найти цитируемый пост)
Ну когда я в коде поставил || то цыкл ждал пока оба значения не станут меньше нуля... 

это правильно

Цитата(Kirgston @  8.4.2009,  11:14 Найти цитируемый пост)
но там же стоит ИЛИ... смотрите первый мой пост... там код просто ждал пока оба значения не станут меньше нуля... 

это правильно. Так и должно быть


Цитата(Kirgston @  8.4.2009,  11:14 Найти цитируемый пост)
но вроде при || программа должна ждать пока одна  из переменных не станет меньше нуля...

кто тебе Это сказал? Ничего никто не должен ждать. Не надо читать условия наоборот. 
У тебя написано если us_hp>0 или ai_hp>0 сделай battle().
Где тут написано
Цитата
программа должна ждать пока одна  из переменных не станет меньше нуля...


у тебя написано : пока хотябы одна из этих переменных больше нуля - крутиться в цикле

PM MAIL   Вверх
J0ker
Дата 9.4.2009, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(math64 @ 7.4.2009,  11:59)
zim22: Результат операции > всегда true(1) или false(0), -1 никогда не бывает.

true это всегда true, а false это всегда false
в C++ bool - встроенный тип

Добавлено @ 08:27
Цитата(Kirgston @ 7.4.2009,  11:31)
Вроде он должен проверять 2 параметра и если один из них меньше нуля то ити дальше, а иначе вызывать Баттле. Но не знаю почему... но оно идет дальше только когда оба параметра меньше нуля...

Код

while ( us_hp >= 0 && ai_hp >= 0 ) battle();

или
Код

while ( !(us_hp < 0 || ai_hp < 0) ) battle();

или
Код

while ( !(us_hp < 0) && !(ai_hp < 0) ) battle();


Это сообщение отредактировал(а) J0ker - 9.4.2009, 08:28


--------------------
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.