Автор
|
Тема: Чего-то не понимаю в логических операторах.
|
Mustang |
опубликован 20-08-2001 03:52 MSK
Ситуёвина следующая:char answer; do { cout<<"1. Select One"; cout<<"2. Select two"; cout<<"3. Exit"; cin>>answer; }while(answer!='1'
|
m_fox
|
опубликован 20-08-2001 04:05 MSK
Это не логические операторы, а перегрузка операторов. В данном случае выполняется запись в поток (cout<<"") и взятие из потока (cin>>type). Эквивалентно printf и scanf. На самом деле происходит подстановка функций. Более подробно смотри operator в справочной системы С++. |
Mustang
|
опубликован 20-08-2001 04:15 MSK
Sorry (Обрезало видать. Неужто ограничитель стоит?)Там дальше так: while(answer!='1' && answer!='2' && answer!='3'); - так вот так работает, а вот так нет: while(answer!='1' |
Mustang
|
опубликован 20-08-2001 04:19 MSK
Опять обрезало!!! :( Так вот так не работает: while(answer!='1' && answer!='2' && answer!='3'); Но ведь " |
Mustang
|
опубликован 20-08-2001 04:19 MSK
Опять обрезало!!! :( Так вот так не работает: while(answer!='1' |
Mustang
|
опубликован 20-08-2001 04:31 MSK
Кажется я понял специфику работы этого чата. Попробую привести полную форму вопроса: Ситуёвина следующая: char answer; do { cout<<"1. Select One"; cout<<"2. Select two"; cout<<"3. Exit"; cin>>answer; }while(answer!='1' && answer!='2' && answer!='3'); - вот так работает, а вот так нет: while(answer!='1' |
Mustang
|
опубликован 20-08-2001 04:34 MSK
Кажется я понял специфику работы этого чата. Попробую привести полную форму вопроса: Ситуёвина следующая: char answer; do { cout<<"1. Select One"; cout<<"2. Select two"; cout<<"3. Exit"; cin>>answer; }while(answer!='1' && answer!='2' && answer!='3'); - вот так работает, а вот так нет: while(answer!='1' |
m_fox
|
опубликован 20-08-2001 04:38 MSK
Понял :) У меня работает, вроде бы правельно. |
Mustang
|
опубликован 20-08-2001 04:40 MSK
Понял, но неправильно. Похоже чат не воспринимает некоторые символы или воспринимает, но они для него являются управляющими. Вот например тот самый символ из-за которого весь этот кавардак - писать не буду т.к. опять обрежет после него всё - это логическое "ИЛИ" (тоесть две вертикальные черты, а может он и от одной так возмущается)
|
Mustang
|
опубликован 20-08-2001 04:49 MSK
Так вот: неработает когда в строке условия, в операторе while вместо логического И поставить логическое ИЛИ (которое так нелюбит этот чат) :) Должно же быть наоборот! Или я неправильно понимаю логику работы этих операторов? |
m_fox
|
опубликован 20-08-2001 05:30 MSK
Если поставить логическое ИЛИ вместо И, то будет бесконечный цикл. Например: выбираешь 1, а условие будет продолжаться по answer!='2'. |
Mustang
|
опубликован 20-08-2001 06:07 MSK
Эврика!!!!! Ты гений. ? Oops... (Этож я торможу.) Да, пора на свалку! Спасибо. |
m_fox
|
опубликован 20-08-2001 06:19 MSK
Если ты из москвы, то просто поспать надо :) Я-то из владивостока, у нас утро :) |
Mustang
|
опубликован 21-08-2001 00:59 MSK
Неа. Не из москвы, из Белорусии->Минск. А насчёт поспать ты прав. Четыре часа было! :) |