在我的课程结束时,我想询问用户是否要退出。
问题:我想创建一个循环,如果用户输入n
或N
,则会将用户发送到开头(A点),或者
如果他输入y
或Y
,或者进入程序中间(B点),如果他输入其他任何内容,则直到我的程序结束(C点)。
我如何实现这一目标?
#include <stdio.h>
int main()
{
char exit=n;
A POINT
// imagine here some stuff
// some more stuff
// just a bit more junk
// some other C statements
B POINT
printf("wana exit? press y/n);
scanf("%c", &exit);
C POINT
return 0;
}
答案 0 :(得分:0)
您可以将main
中的整个代码包装在do { ... } while (false)
中,并使用continue;
返回顶部,break;
退出循环,例如:< / p>
main() {
do {
// your code
if (exit == 'n')
continue;
} while (false);
}
PS:您可以使用goto
,但这是非常气馁的,所以最好不要开始使用它。
答案 1 :(得分:0)
这是非常基本的。您真正要问的是如何根据有效响应控制主循环,并继续询问响应是否无效。一种方法是使用该值作为循环条件。
do {
// etc etc...
// Ask question until yes or no answer
do {
printf("Wanna exit? Press y/n\n");
if( 1 != scanf("%c", &exit) ) {
printf("Input failed. Exiting.\n");
exit = 'y';
}
exit = tolower(exit);
} while(exit != 'y' && exit != 'n');
} while(exit != 'y');
其他方法使用循环控制结构,例如break
和continue
。这里已经有了答案。