![]() |
|
Модераторы: bsa |
![]()
|
|
| limelight |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
Есть вот такой код:
Он работает как и полагается, но следует изменить условие по другому(но чтобы осталась та же функциональность) как программа работать перестает. следовательно ошибка появляется в условии, но в чем именно, где? Взгляните:
В этом случае уже выйти из программы не получается. В чем дело? Это сообщение отредактировал(а) limelight - 28.2.2010, 13:01 |
||||
|
|||||
| RatHat |
|
|||
![]() Вождь индейцев ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 5.9.2005 Репутация: нет Всего: 1 |
Потому что у тебя так или иначе выражение будет возвращать true. Тебе надо не "ИЛИ" ставить, а "И":
--------------------
Ma a kis' hi ve'ist i wan'i na e'ho ho wan'i |
|||
|
||||
| limelight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
Как же "и" если мне надо либо то либо другое???
не одновременное срабатывание 'n' и 'N' а именно либо первое либо второе.хм... |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну назовите тогда символ (или несколько) который НЕ удовлетворяет Вашему условию : не равен 'n' или не равен 'N' |
|||
|
||||
| Christoph |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 667 Регистрация: 23.1.2008 Где: Харьков Репутация: нет Всего: 11 |
A B F
0 0 0 0 1 0 1 0 0 1 1 1 логическое и, цикл выполняется когда два выражение true если одно false цикл закончится -------------------- ![]() |
|||
|
||||
| limelight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
Хорошо. чтобы Выйти из цикла do while надо чтобы условие было false
Условие ((uslovie!='n')&&(uslovie!='N')) возвращает false во всех случаях кроме когда истинно каждое из подусловий по отдельности, а так же вместе, значит нас устраивает 3 варианта: 1)(uslovie!='n') = false 2)(uslovie!='N') = false 3)(uslovie!='n') = false и (uslovie!='N') = false Например ввели 'n' , тогда uslovie='n'; (uslovie!='n')=false; (uslovie!='N')=true =>все условие ((uslovie!='n')&&(uslovie!='N'))=false и программа завершится. Введем другой символ, например 'y': (uslovie!='n')=true; (uslovie!='N')=true=> все условие у нас true и программа работает дальше... Черт, сам себе доказал!) Хм, неужели все время придется вот так все условия разбирать?))) Неужели нельзя как то проще написать?) Например вот так...}while (!((uslovie=='n')||(uslovie=='N'))); Как здесь правильно написать и как бы написали вы? |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
нет, немного тренировки и будут писаться автоматически вспомните правило минуса при раскрытии скобок: знак каждого числа меняется на противоположный, тут тоже самое :
Это сообщение отредактировал(а) mes - 28.2.2010, 18:33 |
||||
|
|||||
| limelight |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
то есть как я понимаю по вашему выходит !((uslovie == 'n')||(uslovie == 'N')) это все равно что uslovie != 'n' || uslovie != 'N' ? в чем тогда разница между вашим uslovie != 'n' || uslovie != 'N' и моим(ошибочным, указанном в самом начале обсуждения) }while ((uslovie!='n')||(uslovie!='N')) ??? |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| limelight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
Спасибо!)
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |