printf("What do you do?\n1. Walk Away.\n2. Jump.\n3. Open Door.\n\n");
scanf("%d",&Choice);
printf("\n\n\n");
while(4<=Choice,Choice<=0);
{
printf("That is not a choice.\n");
printf("What do you do?\n1. Walk Away.\n2. Jump.\n3. Open Door.\n\n");
scanf("%d",&Choice);
printf("\n\n\n");
}
Run Code Online (Sandbox Code Playgroud)
所以这是我的计划.它可以工作,但我想要做的是重复,直到输入1,2或3的答案.但无论答案是什么,它都会通过while循环然后继续,无论下一个选择.(另外,我确实宣布了"选择";我只是不想展示整个节目.)
您的代码中存在两个问题.你的while循环表达式不正确.逗号不会按照您的想法执行操作:在C/C++中,逗号执行左侧表达式并计算为右侧表达式,这意味着在您的情况下,您只检查第二个条件.你可能想要:
while(4<=Choice || Choice<=0)
Run Code Online (Sandbox Code Playgroud)
该||是OR运算符,如果任它周围的表达式为真返回true.
其次,在while循环结束时有一个错误的分号:
while(4<=Choice,Choice<=0); //<-- this should not be here
Run Code Online (Sandbox Code Playgroud)
这标志着循环的结束,这意味着您的代码被解析为:
while(4<=Choice,Choice<=0); //loop body is empty
{
//and we have a random unnamed block following it
}
Run Code Online (Sandbox Code Playgroud)
删除分号,你的while循环应该正确执行.