Форум программистов, компьютерный форум CyberForum.ru

Как работает оператор if? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
csrnsdrfg
1 / 1 / 0
Регистрация: 09.01.2012
Сообщений: 7
10.01.2012, 19:18     Как работает оператор if? #1
Народ!
Операция сравнения возвращает ЧИСЛО, т.е. while и if принимают ЧИСЛО (0 - false, etc - true).
Вопрос 1) Почему нельзя записать так:
while ( if (3) );
Я этим хочу сказать следующее:
1) Проверяем истинность выражения в скобках while
2) Натыкаемся на if, проверяем истинность (ведь, я если б я туда поставил выражение: "5+3", он бы сначала посчитал его, потом сравнил)
3) if Возвращает true (3 - true)
4) Выражение в скобках while - true. Начинаем цикл
5) Тело цикла - пустой оператор. Возвращаемся к началу.
Вопрос 2) Как устроен оператор if? Прошу серьезно отнестись к вопросу. Ответы типа: "проверяет истинность. Возвращает число" и т.п. не принимаются.
Хочу услышать разумный ответ. Комп не понимает операции "проверить истинность". КАК ПРОИСХОДИТ эта самая проверка? Желательно максимально подробно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2012, 19:18     Как работает оператор if?
Посмотрите здесь:

C++ Как работает оператор typedef
Оператор+ не работает((( C++
C++ Не работает оператор gets()
Как работает оператор new? C++
C++ Как работает оператор char *! Спасибо заранее!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.01.2012, 21:34     Как работает оператор if? #21
Цитата Сообщение от kisssko Посмотреть сообщение
if возвращает значение последнего выражения
Еще раз. if ничего не возвращает.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kisssko
31 / 31 / 2
Регистрация: 19.12.2011
Сообщений: 72
10.01.2012, 22:31     Как работает оператор if? #22
Цитата Сообщение от soon Посмотреть сообщение
Еще раз. if ничего не возвращает.
Да, действительно. Тут уже я напутал чуток.

Добавлено через 38 минут
Можно только тернарный оператор вместо if использовать(с некоторыми ограничениями), но не наоборот.
C
1
2
3
4
5
6
7
8
9
10
int main(int argc, char **argv)
{
    int   a=0;
    a?a--:a++; /* if(a)a--;else a++; */
    argc-1?
        puts("args")
        :
        puts("noargs");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2012, 05:05     Как работает оператор if?
Еще ссылки по теме:

C++ Как работает оператор switch?
C++ Не работает условный оператор
C++ Как работает тернарный оператор

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
11.01.2012, 05:05     Как работает оператор if? #23
Цитата Сообщение от csrnsdrfg Посмотреть сообщение
Почему нельзя писать так: while (ch = getchar != EOF) ...
Цитата Сообщение от BRcr Посмотреть сообщение
Еще как можно
Просто правильно писать надо, а сообщениям компилятора внимать и делать выводы...
C++
1
2
3
4
5
bool ch;
while( ch = ( getchar( ) != EOF ) ){
  if( ch ) cout<< "true";
  else cout<< "false";
}
и еще и даже и не так можно
C++
1
2
3
4
char ch;
while( (ch = getchar()) != EOF ) ){
  cout<< ch << endl;
}
Yandex
Объявления
11.01.2012, 05:05     Как работает оператор if?
Ответ Создать тему
Опции темы

Текущее время: 15:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru