首页 > 编程语言 >2.3.3 程序基本语句——for 语句、while 语句、do while 语句

2.3.3 程序基本语句——for 语句、while 语句、do while 语句

时间:2024-04-14 18:55:49浏览次数:23  
标签:语句 do int while 循环 执行

循环语句是三种基本语句中最重要的,也是相比有一定难度的。
如果一段动作要多次执行,那么就要知道执行多少次或者满足什么条件之后结束循环。这里我们用一个循环控制量 i 来表示(多层循环可能还会使用 j、k 等)。
C++ 中,通常有如下三种循环结构:for 语句、while 语句、do while 语句

一、for 语句

基本结构:

for(int i = 1; i <= n; i ++){
  //循环执行的语句
}
  • int i = 1 为定义循环控制量 i 且声明其初始值为 1;
  • i <= n 为继续执行循环的条件,即如果 i 满足小于等于 n,那么继续循环;如果 i 大于 n,那么结束循环;
  • i ++ 循环增量,每进行一次循环,循环控制量 i 的值要发生改变,不然会陷入死循环。
    例如:
#include<iostream>
using namespace std;

int main(){
	int a = 0, n = 100;
	for(int i = 1; i <= n; i ++){
		a ++;
	}
	printf("a = %d", a);
	return 0;
}
a = 100

注意.当需要循环执行的语句只有一句时,大括号{}可以省略:

for(int i = 1; i <= n; i ++){
	a ++;
}

等同于

for(int i = 1; i <= n; i ++)	a ++;

图例记忆:

二、while 语句

while 语句同样需要循环控制量、执行循环条件和循环增量三要素,但是其位置较为特殊。

int i = 1;
while(i <= n){
  //循环执行的语句
  i ++;
}
  • 循环控制量的定义与声明在外部;
  • while()的括号中仅有执行循环条件;
  • 循环增量通常要在{}之中。
    注意.while 语句较常用的情形,当需要循环 m 次,且该 m 的值后续不会使用,则:
int m = 10;
while(m --){
  //循环执行的语句
}

根据 0 即假,非 0 即真的规则,
当 m -- 语句执行 m 遍时,m 的值会累减为 0,
此时执行循环条件为假跳出循环,
此时 m -- 既作为了执行循环条件又作为了循环增量。

三、do while 语句

do while 语句与while 语句类似,执行循环条件在while()的括号中,
但是while 语句是满足执行循环条件才会执行,
do while 语句是先执行一次,再判断是否满足执行循环条件。

int i = 1;
do{
  //循环执行的语句
  i ++;
}while(i <= n)

即 do while 语句至少会执行一次、while 语句不一定执行。

四、总结

三种循环语句结构均有自己的使用方法:

  • 当需要循环控制量累加或者循环执行的语句中需要循环控制量时,通常使用for 语句;
  • 当面对需要循环 m 次,且该 m 的值后续不会使用的情况,while 语句更加方便;
  • do while 语句使用相对较少。

标签:语句,do,int,while,循环,执行
From: https://www.cnblogs.com/why-1017/p/18134515

相关文章

  • windows 使用MSVC2022编译 Qt 5.12.11
    准备准备一下安装程序,并添加到PATH环境变量。Perl选择64位Portable:PerlPortableRuby选择64位版本进行安装:ruby64bitPython安装Pythonjomnmake不支持并行编译,使用jom进行并行编译。下载jom,解压并添加到PATH环境变量。jomQt5.12.11编译下载地址:Qt5.12.11。使用MS......
  • Linux-用户管理-查看用户命令id-/etc/passwd-/etc/shadow-系统中用户的约定和规范
    1.Linux下的用户有什么作用1)系统上的每一个进程(运行的程序)都需要特定的用户运行2)每一个文件都有特定的用户拥有,所以访问一个文件或目录受到用户的限制3)进程能够以何种方式访问某一个文件或目录,与进程所关联的用户有关  2.用户相关查看命令命令:id#语法id[option......
  • markdown基本语法
    一级标题二级标题三级标题四级标题五级标题六级标题标签高亮斜体粗体粗斜体这是引用的第一行超链接自动链接:https://www.baidu.com删除线下划线无序列表换行后用Tab键实现列表的嵌套操作有序列表换行后用四个空格实现换行缩进操作Markdown制......
  • 面试官:实战中用过CountDownLatch吗?详细说一说,我:啊这
    写在开头在很多的面经中都看到过提问CountDownLatch的问题,正好我们最近也在梳理学习AQS(抽象队列同步器),而CountDownLatch又是其中典型的代表,我们今天就继续来学一下这个同步工具类!CountDownLatch有何作用?我们知道AQS是专属于构造锁和同步器的一个抽象工具类,基于它Java构造出了......
  • 庄子之棰 float 和 double 精度不同导致的误差
    结论:计算小数时优先选double,而不是float《庄子·天下》一尺之棰,日取其半,万世不竭。一米的棍子,一天砍掉一半,问第n天(1~20)时被砍掉的总长度是多少?类似的有小球落地反弹一半的路程,下面的代码求的是小球从50米高空落地反弹的路程,结果保留十位小数,代码看起来没啥问题,当输入......
  • scanf 中给 double 用 %f 时赋值异常, float lf, char s 同理
    结论scanf的变量要匹配对应的格式化字符串。floatf,doublelf,charc编译器提示的错误要消除,不消除不能运行;同时尽量消除警告doublefc语言中,给double类型的变量用scanf%f输入赋值时,会发生逻辑上的错误,请看代码#include<stdio.h>intmain(){doublevalue......
  • Markdown语言图片居中、并调整图片大小
    Markdown语言图片居中、并调整图片大小Mardkdown语言本身不直接支持调整图片位置/大小,但是Mardkdown语言支持HTML语言,因此可以通过HTML语言修改位置/大小,语法如下居中,并指定图片宽度和高度,代码如下:html<divalign="center"><imgsrc="图片地址"width=500height=300/......
  • WDS+MDT网络启动自动部署windows(六)rules bootstrip.ini
    简介这就是自动化的关键一步。自动化规则,启动脚本。关键是设置共享文件夹属性中的Rules标签。设置rulesbootstrap.ini官方示例分步-使用MDT在测试实验室中部署Windows10-Windows10|Microsoft学习fully-automated-lti-deployment-for-a-refresh-computer-scenari......
  • Windows 自定义服务(Windows Service)管理
    Windows自定义服务(WindowsService)管理在Windows系统中,你可以使用sc.exe命令或者PowerShell来创建自定义服务。以下是两种方法:使用sc.exe命令:打开命令提示符(以管理员身份运行)。使用sc.exe命令创建服务,语法如下:sccreate<ServiceName>binPath="<PathtoE......
  • WDS+MDT网络启动自动部署windows(五)MDT安装
    简介终于搞到自动化了。这个需要MDT来做,虽然微软已经简易上configmanager了。但是那东西要钱。还是在MDT上折腾吧MDT,是一个共享,基于samba共享来进行安装的。它可以生成一个启动镜像(PE),启动ISO,用来安装系统,可以同时做很多自动化操作,比应答脚本强大的多。这个PE就是ADK提供的。......