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

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

Восстановить пароль Регистрация
 
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
28.12.2012, 21:03     Если if не выполняется, то можно не писать else? #1
Например, код:
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";
И приведите примеры упрощенных записей кода, или ссылки дайте где прочитать про это.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 21:03     Если if не выполняется, то можно не писать else?
Посмотрите здесь:

Как выйти?, если условие не выполняется C++
C++ else, если какой-либо If не выполняется
C++ зачем часто писать std:: если можно один раз using namespace std?
do while - почему выполняется цикл, даже если условие истина? C++
C++ Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
 Аватар для Schizorb
508 / 460 / 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
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
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);
...
ШКІПЕР
 Аватар для ШКІПЕР
93 / 93 / 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
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 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
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
29.12.2012, 00:00     Если if не выполняется, то можно не писать else? #7
просто не гибко, в методе мы либо выводим данные на экран, либо помещаем в метод какую нить логику(и ничего кроме этой логики), иначе будет каша, которая будет мешать вам развивать проект.
в библиотеках C++ обычно придерживаются такого правила. лично я разделяю всё, что только можно разделить на разные блоки, чтобы кода в разных проектах было как можно меньше. С маленьким количеством кода проще работать, чем с большим.
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
29.12.2012, 00:24     Если if не выполняется, то можно не писать else? #8
Только пожалуйста, уж совсем до мелких мелочей не надо разбивать, тогда связи будет сложно установить порой.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
29.12.2012, 07:14     Если if не выполняется, то можно не писать else? #9
Цитата Сообщение от m1Rr0r Посмотреть сообщение
Не по теме ифов, но можно сделать так
C++
1
cout << "a " << boolalpha << a << endl;
Nagdiel
 Аватар для 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?
Еще ссылки по теме:

Можно писать в консоли 20 шрифтом C++
Можно ли писать вложенные лямбды? (с++11) 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?
Ответ Создать тему
Опции темы

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