如果 else 在 C 中的 for 循环中但 else 语句不起作用


for (int i = 1; i < 22; i++){

if(i<=99 && i>=0){
printf("enter an age");
scanf("%d", &ages[i]);
}
else{
printf("enter a valid number");
}

}

当我在if语句外输入一个数字时,例如999,我的程序仍然接受它,而不是打印输入一个有效数字消息。提前谢谢。

当我在if语句外输入一个数字时,例如999,我的程序仍然接受它,而不是打印输入一个有效数字消息。提前谢谢。

我认为' I '是'ages'数组的索引,您允许值的范围为0-99。所以,如果值也超出了这个范围,它仍然会被存储在'ages'数组中。它也不会显示警告消息(输入一个有效的数字)。相反,您可以尝试这样做:

for (int i = 0; i < 22; i++){
printf("enter an age: ");
scanf("%d", &ages[i]);
if(ages[i] > 99 || ages[i] < 0){
printf("enter a valid numbern");
i--;
}
}

最新更新