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

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

Войти
Регистрация
Восстановить пароль
 
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
#1

Если if не выполняется, то можно не писать else? - C++

28.12.2012, 21:03. Просмотров 710. Ответов 10
Метки нет (Все метки)

Например, код:
C++
1
2
3
4
if (a==true)
    cout << "a true";
else
    cout << "a false";
Можно заменить на?
C++
1
2
3
if(a==true)
    cout << "a true";
cout << "a false";
А можно еще как-то поизголяться и уменьшить код?
C++
1
2
3
if(a)
    cout << "a true";
cout << "a false";
И приведите примеры упрощенных записей кода, или ссылки дайте где прочитать про это.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
28.12.2012, 21:11     Если if не выполняется, то можно не писать else? #2
Если писать без else, то "a false" будет напечатано всегда. Вам это нужно?

Сокращенная запись - тернарный оператор, изголяйтесь))

C++
1
cout << (a ? "a true" : "a false");
XRuZzz
Антикодер
643 / 544 / 27
Регистрация: 15.09.2012
Сообщений: 2,495
28.12.2012, 21:18     Если if не выполняется, то можно не писать else? #3
if(a)
cout << "a true";
cout << "a false";
тогда лучше в if выходить из метода, раньше времени

C++
1
2
3
4
5
6
if (a)
{
    cout << "a true";
    return true;
}
cout << "a false";
новички часто забывают про это

а ещё лучше ни использовать в логических методах cout
тогда получаем

C++
1
2
3
4
5
6
7
8
9
10
string getResult(a)
{
   string res = "false";    
   if (a) res = "true";
   return res;
}
 
... 
cout << getResult(a);
...
ШКІПЕР
94 / 94 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
28.12.2012, 21:22     Если if не выполняется, то можно не писать else? #4
Можно все, однозначно

C++
1
2
3
4
5
6
if (a==true){
    cout << "a true";
    goto point;
}
    cout << "a false";
point:    ;
Правда качество хромает... да, о чем это мы
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
28.12.2012, 21:24     Если if не выполняется, то можно не писать else? #5
C++
1
cout << "a " << ((a==true)?"true":"false") << endl;
Не по теме ифов, но можно сделать так)
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
28.12.2012, 21:26  [ТС]     Если if не выполняется, то можно не писать else? #6
Цитата Сообщение от XRuZzz Посмотреть сообщение
а ещё лучше ни использовать в логических методах cout
Почему? Что может нехорошего случиться?
XRuZzz
Антикодер
643 / 544 / 27
Регистрация: 15.09.2012
Сообщений: 2,495
29.12.2012, 00:00     Если if не выполняется, то можно не писать else? #7
просто не гибко, в методе мы либо выводим данные на экран, либо помещаем в метод какую нить логику(и ничего кроме этой логики), иначе будет каша, которая будет мешать вам развивать проект.
в библиотеках C++ обычно придерживаются такого правила. лично я разделяю всё, что только можно разделить на разные блоки, чтобы кода в разных проектах было как можно меньше. С маленьким количеством кода проще работать, чем с большим.
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
29.12.2012, 00:24     Если if не выполняется, то можно не писать else? #8
Только пожалуйста, уж совсем до мелких мелочей не надо разбивать, тогда связи будет сложно установить порой.
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
29.12.2012, 07:14     Если if не выполняется, то можно не писать else? #9
Цитата Сообщение от m1Rr0r Посмотреть сообщение
Не по теме ифов, но можно сделать так
C++
1
cout << "a " << boolalpha << a << endl;
Nagdiel
114 / 114 / 3
Регистрация: 23.12.2012
Сообщений: 195
29.12.2012, 09:56     Если if не выполняется, то можно не писать else? #10
Цитата Сообщение от tinne Посмотреть сообщение
И приведите примеры упрощенных записей кода, или ссылки дайте где прочитать про это.
tinne, почитайте лучше какие нибудь стандарты кодирования.
Ну вот например эту книгу Герб Саттер, Андрей Александреску Стандарты программирования на С++


А вообще оптимизация программы, это не то же самое что сокращение строк написанного кода
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2012, 10:08     Если if не выполняется, то можно не писать else?
Еще ссылки по теме:
C++ Можно ли в С++ писать программы с красивым интерфейсом
C++ Можно ли писать int не в самом начале?
do while - почему выполняется цикл, даже если условие истина? C++
Где нужно писать сообщение об ошибке, если ввели неправильное значение? C++
Что писать при вызове функции, если передаю всю структуру? C++

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

Или воспользуйтесь поиском по форуму:
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
29.12.2012, 10:08  [ТС]     Если if не выполняется, то можно не писать else? #11
Спасибо, скачал книгу. Просто заинтерисовали такие возможности кода. Я понимаю, что в жизни такой код использовать не стоит, а так ради интереса.
Yandex
Объявления
29.12.2012, 10:08     Если if не выполняется, то можно не писать else?
Ответ Создать тему
Опции темы

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