Nelek
Извините, что я так откровенен, но ... .. у вас не так много ошибок, ваша программа просто ошибочна.
Вы делаете цикл из 10 итераций, где вы просите номер, а затем пытаетесь выполнить некоторые вещи в 2 случаях и забываете другие 8.
Я рекомендую вам перечитать теорию "инструментов", которые вам нужно использовать, потому что я думаю, что вы не поняли ее правильно.
Некоторые соображения:
- Ваш цикл будет продолжать выполняться, даже если вы дадите отрицательные числа (все меньше 10). Какова, по-вашему, "дозорная ценность"?
- Вы используете "переключатель" непосредственно с входом, но рассматриваете только два случая, что происходит с 3, 4, 5 и так далее? Иначе говоря... Я бы не стал использовать для этого выключатель. Кроме того, вам не хватает пути "по умолчанию".
Некоторые направления, чтобы исправить это:
1 - Если вы должны выполнить его до тех пор, пока не будет предоставлено значение sentinel (что бы это ни было), то вы должны сначала запросить входные данные, войти в цикл, если это разрешено while (input != sentinel_value)
, сделайте то, что вы должны сделать с вводом, а затем попросите и получите следующий пользовательский ввод (в то время как будет проверять его снова и повторять, если это необходимо)
2 - я бы проверил 1 < input < 10 (так как я не знаю, что означает ваше "Сторожевое значение"...), потому что вы не должны ничего выполнять, если т. е. input = -123 (это может быть использование "continue", чтобы избежать остальной части итерации и начать цикл снова)
3 - Если вам нужно использовать переключатель обязательно, хорошим способом его использования может быть разделение четных / нечетных чисел.
4 - Если вы не вынуждены использовать переключатель, то if / else с "input % 2" выполнит эту работу. (если странно, то это может быть еще одно продолжение)
5 - Если вы не используете переключатель, вам понадобится использование инструкции "break", вы можете использовать ее для разрыва бесконечного цикла (альтернатива #1), если задано значение sentinel. Я имею в виду: while (1) { ask - get input, if (sentinel_value) break; else {do the rest} }
Nelek
Добро пожаловать. Проанализируйте то, что я вам сказал, и сравните это с тем, что вы сделали. Перечитайте теорию while / do{...}while() и переключитесь, а затем попробуйте еще раз.
Не забывайте, что отладчик-это большая помощь в поиске вещей самостоятельно (который будет лучшим мастером)