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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
csrnsdrfg
1 / 1 / 0
Регистрация: 09.01.2012
Сообщений: 7
#1

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

10.01.2012, 19:18. Просмотров 2888. Ответов 22
Метки нет (Все метки)

Народ!
Операция сравнения возвращает ЧИСЛО, т.е. 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?
Посмотрите здесь:

Как работает оператор new? - C++
Обязательно ли использовать оператор delete в коде (см.ниже.).После использования оператора new старая область память выделенная для pStr...

Как работает оператор switch? - C++
Shape* generator() { switch(rand() % 3) { case 0: return new Triangle; case 1: return new Rectangle; case 2: return new...

Как работает тернарный оператор - C++
Здравствуйте. Объясните, пожалуйста, что значит эта строка color = (color == 'W') ? 'B' : 'W';

Как работает оператор char *? - C++
Как работает оператор char *! Можете описать его принцип работы! Спасибо заранее!

Как работает оператор typedef - C++
как работает оператор typedef если есть у кого сам код то пришлите,интересно:)

Как работает оператор new, он же _Znwj на асме - C++
Собственно как действительно он работает? То есть что реально происходит какие инструкции (грубо говоря) он выполняет? Откуда проц (в...

Уточнение о том как работает оператор for - C++
Я правильно понимаю? Оператор for, сперва будет работать только с первым выражением до тех пор, пока оно не станет ложным не переходя ко...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2538 / 1303 / 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?
Еще ссылки по теме:

Как работает оператор cout и return? - C++
Допустим есть функция: int show() { int g = 5; cout << (g>7)?1:2; return g>7?1:2; }return на выражение g>7?1:2...

Поясните как работает постфиксный и префиксный оператор на примере - C++
Здравствуйте. Здесь префиксный понятно, а что если изменить на постфиксный, как код будет работать? vector<int>::size_type...

Не работает оператор if else - C++
Всем привет :) Не могу понять , почему не работает оператор if else . Суть программы в том , что надо пройти тест и в конце подсчитать...

Не работает оператор gets() - C++
Господа, помогите! нужна прога для слипания строк, не используя стандартный оператор конкатенации. прога была написана и работала....

Не работает оператор | - C++
Или я чего - то не понимаю, но разве он не должен добавлять биты? #include <windows.h> #include <iostream> #include <bitset> ...


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

Или воспользуйтесь поиском по форуму:
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?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru