Ich habe ursprünglich versucht, die Do While-Schleife zu verwenden, hatte aber dieselben Ergebnisse wie die while-Schleife. Der Benutzer muss eine Nummer 28 - 31 eingeben. Beim ersten Versuch, wenn der Benutzer den Wert korrekt eingeben würde, würde er mit dem nächsten Teil des Codes fortfahren. Wenn der Benutzer jedoch einen falschen Wert eingibt, wird er nach einer Zahl fragen, aber egal, was er eingibt, er wiederholt sich.Warum läuft meine while-Schleife weiter, auch wenn der Wert wahr ist?
#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();
}
}
Die printf-Anweisung war Zwecke für die Fehlersuche zu testen, ob daysInMonth
den Wert Neuzuordnung.
Warum werden 'daysInMonth' und' pennies' erneut deklariert? –
Die Deklaration des automatischen Objekts 'daysInMonth' innerhalb der' while() '- Schleife überschattet die Deklaration des gleichnamigen automatischen Objekts außerhalb der Schleife. – EOF
Es tut mir leid, dass ich die Zeit verschwendet habe, ich versuche nur zu lernen. – TooDumbForThis