Я попытался использовать цикл Do While, но имел те же результаты, что и цикл while. Пользователь должен ввести число 28 - 31. После первой попытки, если пользователь правильно вводит значение, он перейдет к следующей части кода. Однако, если пользователь вводит неправильное значение, он будет запрашивать номер снова, но, независимо от того, что он вводит, он продолжает повторяться.Почему мой цикл while продолжает выполняться, даже когда значение истинно?
#include <cs50.h>
#include <stdio.h>
int main(void)
{
printf("Days in month: ");
int daysInMonth = GetInt();
while (daysInMonth < 28 || daysInMonth > 31)
{
printf("Days in month: ");
int daysInMonth = GetInt();
printf("%i\n", daysInMonth);
}
printf("Pennies on the first day: ");
int pennies = GetInt();
while (pennies < 1)
{
printf("Pennies on the first day: ");
int pennies = GetInt();
}
}
Заявление Printf было для отладки, чтобы проверить, если daysInMonth
является переназначение значение.
Почему повторно объявляются 'daysInMonth' и' pennies'? –
Объявление автоматического объекта 'daysInMonth' внутри' while() '-loop затеняет объявление автоматического объекта с тем же именем за пределами цикла. – EOF
Прошу прощения за то, что потратил время на все, я просто пытаюсь умереть. – TooDumbForThis