C语言-循环结构及break、continue
循环结构
--1-- 结构循环 1.1 while循环 1.2 do…while循环 1.3 for循环 --2-- break和continue 2.1 break关键字 2.2 continue关键字 --------------------------【写在开头:】
『
生活中的循环:
C语言中的循环:
循环结构是程序中一种很重要的结构。其特点是,在给定的条件成立时,反复执行某程序段,直到条件不成立为止。
C语言中提供了多种循环语句:
1)goto语句和if构成循环(已经被摒弃)
2)while语句
3)do-while语句
4)for语句
构成循环的几个条件:
一般来说一个循环需要以下几部分构成
1)循环控制条件
循环退出主要依据
2)循环体
循环过程中重复执行的代码块。
3)能够让循环结束的语句(递增、递减、真、假等)
』
--1-- 结构循环
1.1 while循环
1)语法格式
while(条件)
{
语句1;
语句2;
…
语句n;
}
2)while循环执行特点
当条件成立时一直执行程序体。
3)示例
从键盘上输入一个数n,计算1+2+3…+n的值。
- //定义变量
- int i = , n = , sum = ;
- //接受键盘输入n并赋值给变量n
- printf("请输入累加上限:\n");
- scanf("%d",&n);
- //while循环条件小于n
- while (i <= n) {
- sum += i; //累加
- i++;
- }
- printf("从1累加到%d的值是:%d\n",n,sum);
4)补充
scanf的原理:如果输入缓冲区不为空,则不会让用户再次输入内容,而直接冲缓冲区中继续获取。
最简单的死循环:while(1);
1.2 do…while循环
1)语法格式
do{
语句1;
语句2;
…
语句n;
}while(条件);
2)do…while循环的特点:
不管while中的条件是否成立,至少会执行一次循环体。
3)while和dowhile的循环类型不同
while循环是一个当型循环,当条件满足时再执行循环体;
do…while循环是直到型循环,先执行循环体,再判断条件,直到条件为假时结束。
4)示例
- int x = -;
- do{
- printf("do...while\n");
- x--;
- }while (x > ); //do...while循环 无论条件是否满足,循环体都会执行一次
1.3 for循环
1)for语法格式
C语言中for语句的使用最为灵活,完全可以代替while语句
一般形式:
for(表达式1;表达式2;表达式3){
语句块;
}
2)for循环执行过程
执行顺序:
1)先求表达式1,给i初始化
2)求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句-->表达式3
3)执行表达式4
-->循环完一遍之后执行第二步,再依次往下
注意:步骤1)在整个循环中只执行一次
3)for循环的其他形式
1)表达式1省略
- int i = ;
- for (; i < ; i++){
- printf("%d", i);
- }
2)表达式1、3省略
- int i = ;
- for (; i < ;){
- printf("%d", i);
- i++;
- }
3)表达式1、2、3省略
- int i = ;
- for(;;){
- if (i < ){
- printf("%d", i);
- i++;
- } else{
- break;
- }
- }
4)最简单的for循环
- for (; ; );
5)for循环的嵌套使用
打印图形
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
分析:
内层循环打印一行,外层循环5次打印5行
- for (int j = ; j < ; j++) {
- for (int i = ; i < ; i++) { //内层打印行
- printf("*\t");
- }
- printf("\n");
- }
--2-- break和continue
2.1 break关键字
break和continue都可以用在循环中,用来跳出循环/结束循环
break用法
break语句通常用在循环和开关语句中。
注意:
1)break对if-else不起作用。
2)break用于跳出当前循环(结束当前循环)。
3)break影响的是当前的这个循环,对外层循环不起作用
示例
计算r=1到r=10时圆的面积,直到面积大于100为止
分析:
圆的面积 area = 3.14 * r * r;
- //计算r=1到r=10时圆的面积,直到面积大于100为止
- for (int r = ; r <= ; r++) {
- double area = 3.14 * r * r;
- if (area > ) {
- break; //面积大于100 结束循环
- }
- printf("area = %.2f\n", area);
- }
2.2 continue关键字
continue用于结束本次循环,继续下次循环
continue只用在for、while、do-while等循环体中,常与if语句一起使用,用来加速循环
示例
把100-200之间不能被3整除的数输出。
分析:
被3整除时结束本次循环进入下一次循环
- //把100-200之间不能被3整除的数输出
- for (int i = ; i <= ; i++) {
- if (i % == ) {
- continue; //整除则跳出本次循环
- }
- printf("i = %d\n", i);
- }
总结:
break跳出循环后循环就结束了,而continue跳出循环后还继续下一次循环。这就是break和continue最大的区别。
【写在结尾:】
『下雨了,滴答滴答的...从小最喜欢的,就是听雨的声音...』
C语言-循环结构及break、continue的更多相关文章
- MATLAB循环结构:break+continue+嵌套
break语句:终止当前循环,继续执行循环语句的下一语句: continue语句:跳过循环体的后面语句,开始下一个循环: 例:求[100,200]之间第一个能被21整除的整数 :200 %循环语句 ) ...
- 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句
049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...
- bash中选择结构、循环结构与break、continue
if两种选择结构 if 测试条件; then 程序块 else 程序块 fi if 测试条件1; then 程序块 elif 测试条件2; then 程序块 ... elif 程序条件n; then ...
- iOS学习之C语言循环结构
一.while循环 while (循环条件) { 循环体: } // 1.定义循环变量 int time = 1; // 2.循环条件 while ( ...
- C语言--循环结构
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVveW91MTMxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- day05-Python运维开发基础(双层循环、pass/break/continue、for循环)
# ### 双层循环练习 # 十行十列小星星 j = 0 while j<10: # 逻辑代码写在下面 # 打印一行十个小星星 i = 0 while i<10: print(" ...
- for循环里的break,continue和return有什么差别
break: 此语句导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环.如果break语句包含在嵌套循环里,它只跳出最里面的循环. 如下代码 ...
- C语言------循环结构II
仅供借鉴.仅供借鉴.仅供借鉴(整理了一下大一C语言每个章节的练习题.没得题目.只有程序了) 文章目录 1 .实训名称 2 .实训目的及要求 3 .源代码及运行截图 4 .小结 1 .实训名称 实训6: ...
- C语言------循环结构I
文章目录 1 .实训名称 2 .实训目的及要求 3 .源代码及运行截图 4 .小结 1 .实训名称 实训5:循环结构I 2 .实训目的及要求 1 .熟练掌握while.do-while和for语句实现 ...
随机推荐
- php-fpm重启关闭等操作
php-fpm 启动:/usr/sbin/php-fpmphp-fpm 关闭:kill -INT `cat /var/run/php-fpm.pid`php-fpm 重启:kill -USR2 `ca ...
- Online, Asynchronous Schema Change in F1
F1: A Distributed SQL Database That Scales http://disksing.com/understanding-f1-schema-change ma ...
- MYSQL提权总结
最近在测试一个项目,遇到了MYSQL数据库,想尽办法提权,最终都没有成功,很是郁闷,可能是自己很久没有研究过提权导致的吧,总结一下MYSQL提权的各种姿势吧,权当复习了.关于mysql提权的方法也就那 ...
- SecureCRT连接VirtualBox下的ubuntu以及NMP的搭建与通过宿主机访问该NGINX服务器过程
一直使用wamp作为开发环境,只是工作中时常会遇到在wamp下没问题但是提交到服务器生产环境会出现一些意想不到的情况,由此萌生了在本机搭建LNMP环境的想法,我个人不知道其他人的虚拟机搭建服务器环境是 ...
- iPhone CSS media query(媒体查询)
iPhone5 iPhone6 iPhone6Plus iPad设备 media query(媒体查询)代码. iPhone < 5: @media screen and (device-a ...
- Node.js的特点
作为后端JavaScript的运行平台,Node保留了前端JavaScript中些熟悉的接口,没有改写语言本身的任何特性,依旧基于作用域和原型链,区别在于它将前端中广泛应用的思想作用到了服务器端.下面 ...
- jq弹框确认
function delCustomer(id,num){ var r=confirm("友情提醒:确认要删除客户吗?"); if (r==true){ $.ajax({ type ...
- 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台
开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...
- 批判性思维——Asking The Right Questions
我们生活在一个纷繁复杂的数字世界中,每天都在信息海洋中遨游.如果不想被其淹没,继而成为别人思想的傀儡,就有必要对你接受的信息进行批判.筛选,自己决定该相信什么不该相信什么,进而形成自己的观点,而不是一 ...
- Hihocoder 1063 缩地
树形dp 涉及不重复背包组合求最小 从边长分段看不好入手 因为点数只有100点值<=2,总值<=200 可以对每个点的每个值进行dp 这里最后不回来肯定优于全回来 然后由于要分为回来和不回 ...