C++语法2——for、while、do-while的语法及区别

C语言语法1详情请看这两篇博客:(此号为本人小号)
四则运算及基本语法
数据类型


接下来要讲得是循环语句

for循环

基本语法:

for(表达式1;表达式2;表达式3)
{
	内嵌语句;
}

执行顺序:
①执行表达式1;
②执行表达式2,表达式2的结果一般为真或假。若为真,则执行内嵌语句,完毕后执行表达式3;否则退出循环。
③执行完表达式3后返回第②步继续执行,直到表达式2的结果为假(退出循环)。

❗❗❗注意:
①表达式1、2、3及内嵌语句都可以选择不填,若没填,则跳过相应步骤;
②记住for里面的三个语句间要用英文下的分号(;)间隔;
③表达式1是赋初值,表达式2是循环条件,表达式3是运算(一般是自增、自减、两个值间的某种关系)

举个栗子:
找最小值
找最小值

代码:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[105];
int main() 
{
    
    
	int n;
	cin>>n;
	int minn=1001;
	for(int i=0;i<n;i++)
		cin>>a[i];
	for(int i=0;i<n;i++)
	{
    
    
		if(a[i]<minn)  minn=a[i];
	}
	cout<<minn; 
	return 0;
}


while

基本语法:

while(表达式(条件))
{
	内嵌语句;
}

执行顺序:先判定表达式是否为真,若为真则继续执行内嵌语句,执行完后返回表达式继续判定是否为真,直到表达式为假才退出循环;若为假则退出循环。

小用法:while(1)表示永真式,即无限循环;while(0)表示永假式,即不会进行该循环。
对应for来说:for( ; ; )表示永真式,for(int i=0; i<0; )就表示永假式。(不一定是以上这两个式子,可以有其他表示方法,底层逻辑一样即可)

while和for的区别:一般来说,它俩除了语法上有些许区别外,就没啥区别了。

栗子依旧是上面那个,这个是用while来实现的

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[100];
int main() 
{
    
    
	int n;
	cin>>n;
	int minn=1001;
	for(int i=0;i<n;i++)
		cin>>a[i];
	int i=0;
	while(i<n)
	{
    
    
	    if(a[i]<minn) minn=a[i];
	    i++;
	}
	cout<<minn; 
	return 0;
}

i为9时也就是最后一个元素,再自增就是10,条件为假退出循环。



do-while

基本语法:

do
{
	内嵌语句;
}while(表达式);

执行顺序:先做内嵌语句再判定表达式是否为真,若为真则继续;否则退出循环。

do-while和while的区别:do-while是先执行内嵌语句再判条件,while是先判条件再执行内嵌语句。

栗子的do-while循环代码:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[105];
int main() 
{
    
    
	int n;
	cin>>n;
	int minn=1001;
	for(int i=1; i<=n;i++)
		cin>>a[i];
	int i=0;
	do
	{
    
    
	    i++;
	    if(a[i]<minn) minn=a[i];
	}while(i<n);
	cout<<minn; 
	return 0;
}

假设n为10,当i为9时,还要再做一次内嵌语句,即i变为10,也就是最后一个语句,所以while循环的条件是i<n。

以上就是循环语句的全部芝士 知识,这三个循环在大多数情况下都能换着使用,哪个方便就用哪个,哪个习惯就用哪个,主要需要注意的是设立循环条件时要考虑是否取临界点。

猜你喜欢

转载自blog.csdn.net/weixin_61017400/article/details/128503686