我试图在用户输入“0”时输出 First_Name,在输入“1”时输出 Last_Name,我首先使用其他方式执行此操作,并随机更改代码。
#include <stdio.h>
int main() {
int a;
for (a = 0; a < 1 ; a--) {
printf("ENTER 0 or 1\n");
scanf("%d", &a);
if (a == 0) {
printf("First_Name");
}
else {
if (a == 1) {
printf("Last_Name\n");
}
else {
printf("Wrong Input. Please Try Again.\n");
}
}
}
return 0;
}
如果我输入“0”或“1”,代码将按预期工作(它根据需要显示 First_Name 或 Last_Name),然后提示等待用户再次输入。
但是一旦我输入任何其他数字,它只会打印“输入错误。请重试。”然后退出。
为什么? (我正在在线编译器上运行代码。)
尝试一下,for 循环是在没有初始化、条件或增量表达式的情况下编写的(for (;;))。这将创建一个无限循环,该循环将继续运行,直到从循环体内部明确终止。
#include <stdio.h>
int main() {
int a;
for (;;) {
printf("ENTER 0 or 1\n");
scanf("%d", &a);
if (a == 0) {
printf("First_Name\n");
}
else if (a == 1) {
printf("Last_Name\n");
}
else {
printf("Wrong Input. Please Try Again.\n");
continue; // Skip the rest of the loop body and start from the beginning
}
}
return 0;
}
你也可以试试这个。
#include <stdio.h>
int main() {
int a;
while (1) {
printf("ENTER 0 or 1\n");
scanf("%d", &a);
if (a == 0) {
printf("First_Name\n");
}
else if (a == 1) {
printf("Last_Name\n");
}
else {
printf("Wrong Input. Please Try Again.\n");
continue;
}
}
return 0;
}