Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Опять вопрос - почему так?


Автор: it_medved 10.5.2007, 18:31
Почему в цикле for не срабатывает условие?? Я вообще думал, что код не откомрилируется. А он почему-то в бесконечном цикле. Обьясните почему так происходит

Код

    for( int i = 0; i = 10; i++ )
        cout<<"lalala";

Автор: Daevaorn 10.5.2007, 18:33
it_medved, тут нет условия как такового. i = 10 не равно нулю, а следовательно всегда true

Автор: it_medved 10.5.2007, 18:39
тю, я думал, что в условиях можно использовать только < > <= =>...
А оказывается, что важно только то, что заключается в этих скобках?

Автор: DigitSphinx 10.5.2007, 18:40
Код

 for( int i = 0; i < 10; i++ )
        cout<<"lalala";

Автор: nickless 10.5.2007, 18:46
it_medved, в условиях можно использовать всё, что можно использовать как bool, а т.к. числа типа int != считаются true, а 0 false, то теоретически можно использовать вообще всё что имеет какое-либо значение smile 

Автор: it_medved 10.5.2007, 18:46
Да  я знаю, как надо правильно, мне просто интересно сам по себе этот вопрос

Автор: S.A.G. 10.5.2007, 18:46
Цитата(it_medved)
Да  я знаю, как надо правильно, мне просто интересно сам по себе этот вопро

Все что больше нуля всегда true, причем неважно что это - результат условной операции или выполнения присваивания.

Автор: it_medved 10.5.2007, 18:47
Цитата

it_medved, в условиях можно использовать всё, что можно использовать как bool, а т.к. числа типа int != считаются true, а 0 false, то теоретически можно использовать вообще всё что имеет какое-либо значение smile  

А можно тогда даже использовать обьект своего класса???

Автор: S.A.G. 10.5.2007, 18:49
Цитата(it_medved @ 10.5.2007,  18:47)
Цитата

it_medved, в условиях можно использовать всё, что можно использовать как bool, а т.к. числа типа int != считаются true, а 0 false, то теоретически можно использовать вообще всё что имеет какое-либо значение smile  

А можно тогда даже использовать обьект своего класса???

Объект это как? Поля - ага.

Автор: Daevaorn 10.5.2007, 18:50
Цитата(it_medved @  10.5.2007,  19:47 Найти цитируемый пост)
А можно тогда даже использовать обьект своего класса??? 

да, если перегрузишь у него соответствующий оператор.

Автор: nickless 10.5.2007, 18:51
Цитата(it_medved @  10.5.2007,  17:47 Найти цитируемый пост)
А можно тогда даже использовать обьект своего класса?

Да, причем для класса можно перегрузить соответствующие операторы и использовать даже со смыслом smile
Например в std::fstream можно проверять, открылся ли файл с помощью 
Код

std::fstream f;
...
if (!f)
{
    ... //ошибка
}

Автор: it_medved 10.5.2007, 19:00
А какой такой оператор надо перегрузить, что бы можно было бы использовать обьект класса в условиях?

Автор: JackYF 10.5.2007, 20:40
bool class_name::operator!() const

Автор: it_medved 10.5.2007, 20:48
JackYF Сенкс! smile Буду знать, чем удивить smile

Автор: JackYF 11.5.2007, 15:18
Тьфу блин, было не туда отпостено.
Удалено.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)