kacToHbI4
@kacToHbI4
11 лет anykey - надоело, хочу в разработчики.

Есть ли способ упростить код программы или как уменьшить кол-во if?

Я недавно задавал вопрос и в одном из ответов мне посоветовали почитать вот такой гайд по стилю написания кода. Отсюда вопрос, есть ли возможность избежать большого количества if вот в таком примере:

if(result8 != 0) {
        result8 = 1;
    } if(result7 != 0) {
        result7 = 2;
    } if(result6 != 0) {
        result6 = 4;
    } if(result5 != 0) {
        result5 = 8;
    } if(result4 != 0) {
        result4 = 16;
    } if(result3 != 0) {
        result3 = 32;
    } if(result2 != 0) {
        result2 = 64;
    } if(result1 != 0) {
        result1 = 128;
    }


Мне как-то режет глаз такое количество одинаковых структур if подряд. Но алгоритм решения задачи у меня получается именно такой.
  • Вопрос задан
  • 703 просмотра
Решения вопроса 1
@deliro
Это решается массивами и хэшами. А твоей задаче вообще легко формулу придумать, у тебя все числа — степени двойки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@deadem
На самом деле, тут нужно сначала посмотреть, как вы используете эти result1...8, может быть вообще вам здесь ни одного if не нужно, уж очень это напоминает конструирование байта, где result1...8 - это номера битов+1.

Как вариант, именно для вашего примера: https://ideone.com/ICx8P1
Ответ написан
EnDeRJaY
@EnDeRJaY
cout >> "Hello World!" >> endl;
switch и массивы вам в помощь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы