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

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

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

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

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

Как выйти?, если условие не выполняется C++
C++ else, если какой-либо If не выполняется
C++ Как можно писать эту программу?
C++ Можно ли писать int не в самом начале?
do while - почему выполняется цикл, даже если условие истина? C++
Где нужно писать сообщение об ошибке, если ввели неправильное значение? C++
Можно писать в консоли 20 шрифтом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Антикодер
615 / 516 / 26
Регистрация: 15.09.2012
Сообщений: 2,457
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
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,238
Завершенные тесты: 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
Антикодер
615 / 516 / 26
Регистрация: 15.09.2012
Сообщений: 2,457
29.12.2012, 00:00     Если if не выполняется, то можно не писать else? #7
просто не гибко, в методе мы либо выводим данные на экран, либо помещаем в метод какую нить логику(и ничего кроме этой логики), иначе будет каша, которая будет мешать вам развивать проект.
в библиотеках C++ обычно придерживаются такого правила. лично я разделяю всё, что только можно разделить на разные блоки, чтобы кода в разных проектах было как можно меньше. С маленьким количеством кода проще работать, чем с большим.
Wolkodav
 Аватар для Wolkodav
601 / 454 / 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?
Еще ссылки по теме:

C++ Можно ли в С++ писать программы с красивым интерфейсом
Можно ли писать вложенные лямбды? (с++11) C++
Что делать, если хочется писать программы на заказ? C++
C++ Подскажите 2д движок в котором на с++ писать можно
Как лучше учиться: писать консольные приложения или оконные? И если писать оконные, то на чём лучше? 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?
Ответ Создать тему
Опции темы

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