【C语言进阶深度学习记录】七 C语言中的循环语句
文章目录
- 1 循环语句分析
- 1.1 do...while循环
- 1.2 while循环
- 1.3 for循环
- 1.4 三种循环语句使用对比
- 2 break和continue的区别
- 3 总结
1 循环语句分析
C语言中的循环语句主要有for循环,while循环和do…while循环。
循环语句的基本工作方式:
- 通过条件表达式判断是否执行循环体
- 条件表达式遵循if 语句的表达式原则
do,while,for的区别
- do 语句先执行,后判断,至少执行一次循环体
- while语句先判断,后执行,可能不执行循环体
- for语句,先判断后执行,想比较while更简洁
1.1 do…while循环
do…while循环的方式:
1.2 while循环
while循环的方式:
1.3 for循环
for循环方式:
1.4 三种循环语句使用对比
- 代码7-1.c
#include <stdio.h>int f1(int n)
{int ret = 0;if( n > 0 ){do{ret += n;n--;}while( n > 0 );}return ret;
}int f2(int n)
{int ret = 0;while( n > 0 ){ret += n;n--;}return ret;
}int f3(int n)
{int ret = 0;int i = 0;for(i=1; i<=n; i++){ret += i;}return ret;
}int main()
{printf("%d\n", f1(100));printf("%d\n", f2(100));printf("%d\n", f3(100));return 0;
}
- 运行结果为:
5050
5050
5050
2 break和continue的区别
- break表示终止循环的执行
- continue表示终止本次循环,进入到下一次循环执行
思考:switch语句是否可以使用continue语句?
- 代码7-2.c
#include <stdio.h>void f1(int n)
{int i = 0;for(i=1; i<=n; i++){if( (i % 2) == 0 ){break;}printf("%d ", i);}printf("\n");
}void f2(int n)
{int i = 0;for(i=1; i<=n; i++){if( (i % 2) == 0 ){continue;}printf("%d ", i);}printf("\n");
}int main()
{f1(10);f2(10);return 0;
}
编译运行结果为:
1
1 3 5 7 9
3 总结
- for循环先进行判断再进入循环体
- for循环适合循环次数固定的场合
- while循环先进行判断再进入循环体
- while循环适合循环次数不固定的场合
- do…while循环先执行循环体再进入循环体
- do…while循环至少执行循环体一次
【C语言进阶深度学习记录】七 C语言中的循环语句相关推荐
- 【C语言进阶深度学习记录】三十八 C/C++语言中的函数声明与函数定义
文章目录 1 函数的声明和定义 1.1 代码分析 2 总结 1 函数的声明和定义 声明的意义在于告诉编译器程序单元的存在.只是告诉编译器它存在但是不在声明这里定义,有可能在当前文件中的其他地方或者其他 ...
- 【C语言进阶深度学习记录】三十五 程序中的堆、栈以及静态存储区(数据区)
学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 在我之前学习底层的知识的时候,也写过相关的内容.可以对比的学习:[软 ...
- 【C语言进阶深度学习记录】二十六 C语言中的字符串与字符数组的详细分析
之前有一篇文章是学习了字符和字符串的,可以与之结合学习:[C语言进阶深度学习记录]十二 C语言中的:字符和字符串 文章目录 1 字符串的概念 1.1 字符串与字符数组 1.2 字符数组与字符串代码分析 ...
- 【C语言进阶深度学习记录】十九 #pragma使用与分析
文章目录 1 #pragma 概念简介 1.1 #pragma message 的用法 1.2 #pragma once 的用法 1.3 #pragma pack 的用法 1.31 struct占用的 ...
- 【C语言进阶深度学习记录】十六 静态库与动态库的创建与使用
上一篇文章学习了编译的过程,点击链接查看:[C语言进阶深度学习记录]十五 编译过程简介,每一个C源文件编译后将会生成目标文件,那么这些目标文件,还需要链接起来,生成可执行文件. 文章目录 1 链接的意 ...
- 【C语言进阶深度学习记录】八 C语言中void的分析
文章目录 1 void的意义 1.1 不存在void变量 1.2 C标准 1.3 void指针的意义 1.4 通过void* 实现memset函数 2 总结 1 void的意义 void修饰函数的参数 ...
- 【C语言进阶深度学习记录】五 C语言中变量的属性
上一篇文章学习了C语言中的类型转换,点击链接查看:[C语言进阶深度学习记录]四 C语言中的类型转换. 文章目录 1 C语言的变量属性 1.1 auto关键字 1.2 register关键字 1.3 s ...
- 【C语言进阶深度学习记录】十七 宏定义的使用与分析
文章目录 1 C语言中的宏定义 1.1 定义宏常量 1.2 宏定义表达式 1.3 宏表达式与函数的对比 1.4 宏表达式的作用域 2 C语言中的内置宏 3 宏定义的代码综合示例 4 总结 1 C语言中 ...
- 【C语言进阶深度学习记录】九 C语言中const的详细分析
文章目录 1 const的分析 2 const本质的分析实验 2.1 代码案例分析 3 const修饰函数参数和返回值时的情况 3.1 代码案例分析 4 总结 1 const的分析 不管是C语言还是C ...
最新文章
- sqlite-jdbc jar包下载过程笔记
- linux的ip地址是127,Linux的IP地址显示127.0.0.1的解决办法
- python建立回归模型_简单线性回归的Python建模方法
- android颜色值的表示方法android:background=#FFFFFFFF的意思
- python中int和eval的区别_python中eval与int的区别浅析
- python文件拷贝到其他盘符_Python:文件操作技巧(File operation)
- 另一个强大的Visualizers :Mole For Visual Studio
- android 控件获取rect,Android自定义View圆形进度条控件(三)
- 转载——傅里叶变换概念及公式推导
- 说一说科大讯飞Windows版本唤醒功能10102功能的问题
- java水彩画效果滤镜,教你巧用PS滤镜实现水彩画效果
- 一个程序小白的大胆尝试 (鸡汤)
- 《Git与Github使用笔记》第12章 Pull Request的使用
- spark kryo java_Spark 配置Kryo序列化机制
- CCF-卖菜(Python)
- 阿里云ACA课程之云上安全防护
- 线索二叉树和中序非递归遍历线索化后的二叉树
- 曙光服务器amd芯片,AMD六核体验 曙光Ar-H服务器首发评测.docx
- 电脑外设(I/O)简介:键盘鼠标
- Default encoder for format image2 (codec png) is probably disabled. Please choose an encoder manuall
热门文章
- 实例25:python
- centos7 安装cacti
- 无线网络共享到CM3计算板调试时 connect: Network is unreachable
- 新华计算机学校环境好吗,新华电脑校园环境好不好?(二)
- hive 动态分区实现 (hive-1.1.0)
- $Android连续按返回键两次实现退出程序
- JDE Client开发端 左侧边栏设置
- Informix IDS 11体系操持(918测验)认证指南,第 4 部门: 机能调优(1)
- 软件工程 工具之二—— PowerDesigner v12(六)
- springboot使用mongodb