我想在获取else语句时删除int变量的内容。
程序使用scanf请求1到5之间的数字,并且数字存储在int变量中,如果数字不在1到5之间,那么用户将被定向到else语句并且我使用了goto语句把它带回到开始,我想知道如何在else语句中删除变量的内容,所以我不创建一个连续循环。
使用getchar它是fpurge(stdin)。我正在运行Mac OS X.
以下是该代码:
int main(int argc,const char * argv []) {
int code;
开始:
puts("Please type your error code.");
puts("Range 1-5: ");
scanf("%d", &code);
switch(code)
{
case 1:
printf("INFORMATION\n");
case 2:
printf("INFORMATION\n");
case 3:
printf("INFORMATION\n");
case 4:
printf("INFORMATION\n");
case 5:
printf("INFORMATION\n");
default:
printf("INFORMATION\n");
goto start;
}
}
答案 0 :(得分:2)
只需将int值设置为其他值,例如:
theValue = 0;
答案 1 :(得分:0)
你可能正在寻找一个do ... while循环
编辑不要忘记您的break
陈述!!
do
{
puts("Please type your error code.");
puts("Range 1-5: ");
scanf("%d", &code);
switch(code)
{
case 1:
printf("INFORMATION\n");
break;
case 2:
printf("INFORMATION\n");
break;
case 3:
printf("INFORMATION\n");
break;
case 4:
printf("INFORMATION\n");
break;
case 5:
printf("INFORMATION\n");
break;
default:
printf("INVALID CODE\n");break;
}
} while(code<1 || code> 5);