@LebedevStr

Как остановить «проскальзывание» IF в C#?

Есть такой код
if (value > 0.5 && value < 0.75);
                                        value = value + onePercent * 150;
                                        
                                    if (value > 0.75 && value < 1);
                                    value = value + onePercent * 125;
                                    
                                    if (value > 1 && value < 2);
                                    value = value + onePercent * 100;


Суть в чем, value (число) проскальзывает по всем IFам, и на каждой операции умножается.
Тоесть, число 3.05 превращается в 25.19.

Как "остановить" умножение после первой функции?
Спасибо.
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
вместо второго и третьего if используй else if
if () {
} else if () {
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
32bit_me
@32bit_me
Программист, встраиваемые системы
Нет, нет, нет, не так:
if (value > 0.75 && value < 1);
                                    value = value + onePercent * 125;

А вот так:
if (value > 0.75 && value <= 1) {
                                    value = value + onePercent * 125;
}

или, на худой конец, так:
if (value > 0.75 && value <= 1) 
                                    value = value + onePercent * 125;

Посмотрите, у вас стоит точка с запятой после условия, это значит, что условный оператор на этом закончен, и следующая строка будет выполняться всегда.
И пишите условия так, чтобы они перекрывали весь диапазон, т.е. если у вас в одном if есть условие x < 1.0, то в следующем должно быть x >= 1.0 или наоборот, а лучше используйте if... else...
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы