【发布时间】:2015-01-04 12:28:08
【问题描述】:
我在这里有一个程序,它在指定的 void 方法中包含一个 do-while 循环。我试图退出函数内的循环,以便 do-while 循环实际上按预期工作。除了在我运行程序并且发生其中一种情况之后,尽管我的 while 语句指出它应该只在(userInput!= 1)时工作,但程序继续运行。 我不能使用全局变量来解决这个问题,因为我的任务限制了我使用这些技术,因此非常感谢任何帮助!
这是我的代码的 sn-p:
void functionTest()
{
int gameOver = 0;
int userInput;
do
{
printf("please enter a number 1-3");
scanf("%d",&userInput);
switch(userInput)
{
case 1:
printf("You entered %d",userInput);
gameOver = 1;
break;
case 2:
printf("You entered %d",userInput);
gameOver = 1;
break;
case 3:
printf("You entered %d",userInput);
gameOver = 1;
break;
}
}
while(gameOver!= 1);
}
}
【问题讨论】:
-
为什么要大写c?
-
无法复制:ideone.com/BRS5rx
-
发布完整的代码,它在您的程序中的方式,因为它按预期工作。
-
无法重现该问题。在 while 循环的末尾放置一个
printf("%d\n", gameOver);并查看打印的内容。也许这是一个scanf问题。scanf在不遵守输入格式时会做出奇怪的反应。 -
调试器说什么
标签: c switch-statement break do-while