当前位置:网站首页>【C语言学习笔记(五)】while循环与for循环
【C语言学习笔记(五)】while循环与for循环
2022-08-03 18:35:00 【傻萌的路飞】
一、while循环
1.while循环形式
while循环的通用形式如下所示:
while(expression)
statement
其中,expression是关系表达式,statement可以是以分号结束的简单语句,也可以是用花括号括起来的复合语句。在while循环中,当expression为真(一般来说,非零),执行statement部分一次,然后再次判断expression。在expression为假(0)之前,循环的判断和执行一直重复进行,每一次循环都被称为迭代。
2.while循环的入口和终止
while循环是使用入口条件的有条件循环。所谓的“有条件”指的是语句部分的执行取决于测试表达式描述的条件,只有当满足测试条件的时候才能进入循环体。
while循环有一点非常重要:在构建while循环时,必须让测试表达式的值有变化,表达式最终要为假,这样才能终止循环;否则,循环就不会终止。(此处指提到用while括号中表达式来终止,除此之外,break也可以终止while循环)。需要明确一点,只有在对测试条件求值时,才决定是终止还是继续循环。
3.关系运算符
while循环中经常依赖测试表达式作比较,这样的表达式被称为关系表达式,出现在关系表达式中的运算叫做关系运算符。如下表是一些关系运算符。
运算符 | 含义 |
---|---|
< | 小于 |
<= | 小于等于 |
== | 等于 |
> | 大于 |
>= | 大于等于 |
!= | 不等于 |
** |
二、for循环
1.for循环形式
for循环的基本形式如下:
for(initialize;test;update)
statement
for循环把初始化、测试和更新3个行为组合在一处。从上述for循环的基本形式中可以看到,关键字for后面中的圆括号有三个表达式,分别用两个分号隔开。第1个表达式initialze是初始化,只会在for循环开始时执行一次。第2个表达式test是测试条件,在执行循环之前对表达式求值。如果表达式为假,循环结束。第3个表达式update执行更新,在每次循环结束时求值。
如下是for循环一个举例,其要求是连续输出5句“I love China!”。
#include <stdio.h>
int main(void)
{
int i;
for(i = 0;i < 5;i++)
printf("I love China!"\n);
return 0;
}
2.逗号运算符
逗号运算符扩展了for循环的灵活性,以便在循环头中包含更多的表达式。逗号运算符有两个性质,一是,逗号运算符保证了被它分隔的表达式从左往右求值(换而言之,逗号就是一个序列点,所有逗号左侧项的所有副作用都在程序执行逗号右侧项之前发生)。二是,整个逗号表达式的值是右侧项的值。
while和for都可以实现循环操作,其中while循环是不确定循环,其在测试表达式为假之前预先不知道要执行多少次循环;for循环是计数循环,其在循环执行之前就知道要重复执行多少次。
边栏推荐
- fatal error: jni.h: No such file or directory
- POJ 2377 Bad Cowtractors(最大生成树)
- 在线监控机房内的UPS电源及运行环境,解决方案来了
- 懵逼!阿里一面被虐了,幸获内推华为技术四面,成功拿到offer,年薪40w
- Confused!Ali was abused on the one hand, but was fortunate to be promoted to Huawei's technology, and successfully got the offer, with an annual salary of 40w
- 谷歌浏览器安装插件教程步骤,开发用这2个插件工作效率倍增
- Higher mathematics - chapter ten infinite series - constant term series
- 201712-3 CCF Crontab满分题解
- 动态接口比例性能测试实践
- Web项目Controller统一返回实体类
猜你喜欢
随机推荐
warnings.warn(“Title is more than 31 characters. Some applications may not be able to read the file
NLP的Taskflow API
ImportError: /lib/libgdal.so.26: undefined symbol: sqlite3_column_table_name
flink-sql 客户端 可以设置并行度 吗?断开算子链
vulnhub pyexp: 1
cocos creater 3.x 插件安装方法
fatal error: jni.h: No such file or directory
openresty 高可用部署
一文搞懂│php 中的 DI 依赖注入
Web项目Controller统一返回实体类
5v2.1a给5v2a充电行吗
Mkke:为什么无法从Oracle 11g或12c升级到Oracle 23c?
TiFlash 计算层概览
BinaryIndexedTrees树状数组
常见荧光染料修饰多种基团及其激发和 发射波长数据一览数据
How does MySQL permanently support Chinese input once and for all?
[数据集][VOC]老鼠数据集voc格式3001张
With the help of Kubernetes kubekey speed installation
MySQL——增删改查进阶
87. (Home of cesium) cesium heat map (topography)