循环语句

在我们需要处理大量数据,或者要重复操作时,循环语句会是我们很好的帮手

本文会介绍c++里面最常用的三种循环语句

while循环

while语句的语法与if十分相似,大致如下:

while(bool值)
{
	bool值为true时执行以下代码 
}
bool为false时结束执行

举个简单的例子,当我们需要输入一个数,然后将他从最低位到最高位输出,我们就可以这样写:

int x;
cin>>x;
while(x!=0)
{
	cout<<x%10;
	x/=10;
} 

在上面的代码里面,x!=0这个表达式在x不等于0的时候就会得到\(true\),所以x不等于0时会运行while里面的语句

即每次输出x%10,然后x变成x除以10的结果

为什么这样是把数字倒着输出?

首先看我们输出出来的x%10是什么?根据数学性质可知,x除以10得到的余数会是x的个位数,所以每次输出的是这个数的最后一位

那么同理,x除以10向下取整之后其实就是直接去掉最后一位数

所以我们每次进行的操作是输出最后一位数,然后去掉最后一位数,到0的时候结束,就做到了把数字倒着输出

dowhile循环

dowhile循环与while十分类似,语法如下

do
{
    执行语句 
}while(bool值,如果为true就再次执行,为false就结束);

dowhile语句最重要的就是搞清楚和while之间的区别,while是执行前判断bool值,而dowhile是执行结束之后才判断,所以dowhile最少会执行一遍

例如

do
{
    cout<<"Hello!World";
}while(0);

就会输出Hello!World,但是

while(0)
{
    cout<<"Hello!World";
}

却什么都不会输出

for循环

for循环的基本语法如下:

for (初始化表达式(只在一开始执行); bool值; 更新表达式(每次判断bool值之前执行)) {
    // 待执行的代码块(bool值为true的时候执行)
}

简单来说,在for循环的一开始,会执行初始化表达式,然后开始循环过程

循环过程第一步便是判断bool值是否为true,如果不是则结束,是就执行代码块

执行完代码块后,会执行更新表达式,然后重新开始判断bool值是否为true

用流程图描述大致如下

由于for循环的特性,其一般用于明确循环次数的时候

例如,我们要求1到一百的和时:

int sum=0;
for(int i=1;i<=100;i++)
{
	sum+=i;
}
cout<<sum;

我们根据流程推一下

在循环开始前,我们执行了初始化表达式,就是定义整数i等于1

然后每次进入循环前会判断i是否小于等于100,小于等于进入循环,否则结束

然后执行sum加上i

最后结束的时候执行更新表达式,就是变量i自增,即i变大1

显然,i每次自增1,直到101时循环结束,sum会加上每一个i,便加上了1到100,所以便求了1到100的和

注意,这个确定的循环次数并不一定是完全已知的数字,他也可以是n

例如,我们从求1到100的和变成求1到n的和,代码就会变成:

int n;
cin>>n;
int sum=0;
for(int i=1;i<=n;i++)
{
	sum+=i;
}
cout<<sum;

而且也不一定非要从1开始,我们同样可以求出a到b之间所有数的和,例如:

int a,b;
cin>>a>>b;
int sum=0;
for(int i=a;i<=b;i++)
{
	sum+=i;
}
cout<<sum;

continue和break语句

continue

continue语句在循环中充当的作用非常简单:

跳过本次循环剩余还要执行的代码块

一般在循环过程中某些特殊情况用不上的时候可以用continue语句跳过

例如,我们要求1到n的所有个位不是5的数字的和,就可以这样:

int n;
cin>>n;
int sum=0;
for(int i=1;i<=n;i++)
{
	if(i%10==5)
	{
		continue;
	}
	sum+=i;
}
cout<<sum;

在上述代码中,当i的个位数为5时,会跳过sum+=i这一条,直接开始自增,然后下一次循环

所以sum并不会加上个位数为5的数字

break

break语句的功效与continue语句十分相似,都会跳过剩余所有的代码块

但是continue是只跳过当前的循环,后续还会继续进行,而break则是直接结束整个循环,后续不再进行

例如,求同样求和,如果和超过1000就停止:

int n;
cin>>n;
int sum=0;
for(int i=1;i<=n;i++)
{
	if(sum>1000)
	{
		break;
	}
	sum+=i;
}
cout<<sum;

在上述代码中,当总和sum大于1000时我们直接break,跳出来整个循环,所以后续不会再有任何求和,所以和超过1000就会停止

posted @ 2026-10-10 22:08  罗小菜  阅读(6)  评论(0)    收藏  举报