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

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

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

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

28.12.2012, 21:03. Просмотров 755. Ответов 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++):

Зачем часто писать std::, если можно один раз using namespace std? - C++
зачем часто писать std:: если можно один раз using namespace std?

Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять. - C++
Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все...

Как лучше учиться: писать консольные приложения или оконные? И если писать оконные, то на чём лучше? - C++
На днях я узнал про Borland c++ builder и хочу воспользоваться им, но можно и писать код, что-бы было оконное приложение, так что-же лучше?...

Для чего писать статьи на других сайтах, если можно на своём? - Копирайтинг
Объясните пожалуйста - для чего нужно писать статьи на других сайтах (целые каталоги статей существуют) , и давать ссылку на свой сайт,...

Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? - Программирование Android
Нужно написать приложение-справочник, предполагается ,что информация хранится в базе данных. Можно ли написать такое приложение для...

Зачем писать IEnumerable<string> product если можно написать var product? - C#
зачем писать IEnumerable&lt;string&gt; product если можно написать var product? с какой целью использую IEnumerable,IEnumerable&lt;string&gt;? как я...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
28.12.2012, 21:11 #2
Если писать без else, то "a false" будет напечатано всегда. Вам это нужно?

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

C++
1
cout << (a ? "a true" : "a false");
XRuZzz
Антикодер
672 / 573 / 28
Регистрация: 15.09.2012
Сообщений: 2,521
28.12.2012, 21:18 #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 #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 #5
C++
1
cout << "a " << ((a==true)?"true":"false") << endl;
Не по теме ифов, но можно сделать так)
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
28.12.2012, 21:26  [ТС] #6
Цитата Сообщение от XRuZzz Посмотреть сообщение
а ещё лучше ни использовать в логических методах cout
Почему? Что может нехорошего случиться?
XRuZzz
Антикодер
672 / 573 / 28
Регистрация: 15.09.2012
Сообщений: 2,521
29.12.2012, 00:00 #7
просто не гибко, в методе мы либо выводим данные на экран, либо помещаем в метод какую нить логику(и ничего кроме этой логики), иначе будет каша, которая будет мешать вам развивать проект.
в библиотеках C++ обычно придерживаются такого правила. лично я разделяю всё, что только можно разделить на разные блоки, чтобы кода в разных проектах было как можно меньше. С маленьким количеством кода проще работать, чем с большим.
Wolkodav
603 / 456 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
29.12.2012, 00:24 #8
Только пожалуйста, уж совсем до мелких мелочей не надо разбивать, тогда связи будет сложно установить порой.
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
29.12.2012, 07:14 #9
Цитата Сообщение от m1Rr0r Посмотреть сообщение
Не по теме ифов, но можно сделать так
C++
1
cout << "a " << boolalpha << a << endl;
Nagdiel
114 / 114 / 3
Регистрация: 23.12.2012
Сообщений: 195
29.12.2012, 09:56 #10
Цитата Сообщение от tinne Посмотреть сообщение
И приведите примеры упрощенных записей кода, или ссылки дайте где прочитать про это.
tinne, почитайте лучше какие нибудь стандарты кодирования.
Ну вот например эту книгу Герб Саттер, Андрей Александреску Стандарты программирования на С++


А вообще оптимизация программы, это не то же самое что сокращение строк написанного кода
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
29.12.2012, 10:08  [ТС] #11
Спасибо, скачал книгу. Просто заинтерисовали такие возможности кода. Я понимаю, что в жизни такой код использовать не стоит, а так ради интереса.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2012, 10:08
Привет! Вот еще темы с ответами:

Вывести на экран "условие выполняется", если все элементы массива положительные и "условие не выполняется", если это не так. - Pascal ABC
1)Тип массива вещественный.Число элементов 11. Вывести на экран &quot;условие выполняется&quot;, если все элементы массива положительные и &quot;условие...

Можно ли сделать, чтобы в ключевых полях можно было писать одинаковые значения? - MS Access
Можно ли как то сделать что бы в ключевых полях можно было писать одинаковые значения ?

Можно ли сделать, чтобы в программе можно было в компоненте listview1 писать в ячейки текст - C#
Можно ли сделать, чтобы в программе можно было в компоненте listview1 писать\изменять в ячейках текст, а по нажатию кнопки, например как у...

Посоветуйте программый продукт, в котором можно писать как можно на больше числе языков - Разработка ПО
Я слышал, что в BDS2006 можно кодить на любом из аж 4-х языков программирования: java, C#, C++, Delphi. Т.е. качаешь это BDS и всё....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.12.2012, 10:08
Ответ Создать тему
Опции темы

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