Как сделать так, чтобы значение не увеличивалось больше максимального значения в индикаторе выполнения - PullRequest
0 голосов
/ 12 января 2012

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

        if (happyLevel < 100)
        {
            happyLevel = happyLevel + 4;
        }
        else if (happyLevel > 100)
        {
            happyLevel = 100;
        }

        if (hungryLevel < 100)
        {
            hungryLevel = hungryLevel + 4;
        }
        else if (hungryLevel > 100)
        {
            hungryLevel = 100;
        }

        if (healthLevel < 100)
        {
            healthLevel = healthLevel + 4;
        }
        else if (healthLevel > 100)
        {
            healthLevel = 100;
        }

Ответы [ 3 ]

2 голосов
/ 12 января 2012

Вы проверяете, используя else if, что означает, что + 4 может увеличивать любую переменную после 100, если в ней число больше 96.Быстрый способ исправить это - удалить все else с до if с, чтобы вы делали проверку независимо от того, что.

1 голос
/ 12 января 2012

Ты не хочешь, чтобы остальные там были.Вы должны рассмотреть, что произойдет, если добавление 4 устанавливает уровень более 100:

if(happyLevel < 100)
  happyLevel += 4;
if(happyLevel > 100)
  happyLevel = 100;

В качестве примечания, этот код также можно заменить на:

happyLevel = Math.Min(100, happyLevel + 4);
1 голос
/ 12 января 2012

Если один из уровней равен 98, он будет вводить первый оператор if, связанный с ним, обновляться до 102 и не вводить остальное if.Быстрое и простое решение проблемы - это заменить if на if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...