多重循环
如何输出100以内的素数
之前,我们写出了判断这个数值是不是素数的代码
#include <stdio.h> int main () { int num, isPrime; scanf("%d",&num); for (int i = 2; i <= num/2; i++) { if(num % i == 0) { isPrime = 0; } } if(isPrime == 0){ printf("%d不是素数",num); } else { printf("%d是素数",num); } return 0; }
现在,我们可以将其改一下。
用for试试水。
#include <stdio.h> int main () { int isPrime; for(int j =1; j <= 100; j++) { isPrime = 1; for (int i = 2; i <= j/2; i++) { if(j % i == 0) { isPrime = 0; break; } } if(isPrime != 0){ printf("%d ",j); } } printf("\n"); return 0; }
用while看看
#include <stdio.h> int main () { int isPrime; int j =1; while(j <= 100) { isPrime = 1; for (int i = 2; i <= j/2; i++) { if(j % i == 0) { isPrime = 0; break; } } if(isPrime != 0){ printf("%d ",j); } j++; } printf("\n"); return 0; }
结果都是
1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
其实,还有一个点:一个循环有一个循环的控制变量,不要串用。
由上可知,我们可以想象得到,如果要用到枚举或者是其他多级的循环的,可以想到多重循环。
但是,要记住break;
只能跳出其所在的最内层循环
那怎样才能跳出所有的循环?
老方法,先声明一个exit
变量,然后 判断exit
是否等于1
int main() { int exit = 0; for ( int i = 1; i < 10; i++ ) { for (int j = 1; j < 10; j++) { for (int k = 1; k < 10; k++) { exit = 1; break; } if (exit == 1) { break; } } if(exit == 1) { break; } } }
这只是传统方法,还有一个办法——用goto
看操作
int main() { for ( int i = 1; i < 10; i++ ) { for (int j = 1; j < 10; j++) { for (int k = 1; k < 10; k++) { printf("1"); goto out; } } } out: printf("out"); return 0; }
结果,一下子,只打印了一次1
和out
。
跳出的地方声明。
由最内层跳最外层用goto
本文来自博客园,作者:Mryan2005,转载请注明原文链接:https://www.cnblogs.com/Mryan2005/p/17872792.html
分类:
计算机大全 / 我与C语言
标签:
c语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架