- 前言
- 一、题目示例
- 二、解决方法
- 1.使用goto语句
- 2.使用状态标志
- 总结
前言
在编写代码的过程中,有时需要用到到多层while循环,当在内层的循环中但是想要跳出所有的while循环之外时,简单的使用break语句仅仅只能跳出一层while,已经不能满足要求,以下总结了最近学到的几种方法。
一、题目示例
如何实现当输入a为15,输入b为-3后,跳出所有while循环,去执行最后的输出结束语句?
二、解决方法 1.使用goto语句代码如下(示例):
#includeint main() { int a, b, c; printf("请输入a:"); scanf("%d", &a); while (a > 0) { while (a > 5) { while (a > 10) { printf("请输入b:"); scanf("%d", &b); if (b < 0) { goto end;//结束程序 使用跳转语句 } } } } end: //跳到这 printf("程序结束!!!n"); return 0; }
运行结果
代码如下(示例):
#includeint main() { int a, b, c = 1; //c为状态标志 printf("请输入a:"); scanf("%d", &a); while (c==1 && a > 0) { while (c==1 && a > 5) { while (a > 10) { printf("请输入b:"); scanf("%d", &b); if (b < 0) { c = 0; //结束程序 使用状态标志 break; //跳出最里面的while循环 } } } } printf("程序结束!!!n"); return 0; }
运行结果
总结
提示:goto语句虽然好用,但是有时候会导致代码混乱,所有要少用。使用状态标识很多时候可以很好的解决问题。



