我们在写顺序结构和分支结构时通常会写到一些重复度很高的代码

比如说,输入5个数,判断其中是否有数等于5

我们当然可以这么写

int main()
{
	int a;
	cin>>a;
	if(a==5) cout<<"YES"<<endl;
	cin>>a;
	if(a==5) cout<<"YES"<<endl;
	cin>>a;
	if(a==5) cout<<"YES"<<endl;
	cin>>a;
	if(a==5) cout<<"YES"<<endl;
	cin>>a;
	if(a==5) cout<<"YES"<<endl;
	return 0;
}

但是,如果输入的数据达到10个,100个甚至100000个,这样写就显得过于麻烦了

于是,我们引入了循环结构

下面是三个循环结构的语句

for(;;)
{
		
}
	
while()
{
		
}

do
{
		
}while();

这三个语句我们逐条分析

首先是for

for(变量初始化;循环条件;循环变量更新)
{
	循环体
}

如,我们上面在5次输入中查找5的代码即为

int n=5;
for(int i=1;i<=n;i++)
{
	int a;
	cin>>a;
	if(a==5) cout<<"YES"<<endl;
}

循环开始时声明变量i=1,执行循环体,一次循环结束后执行i++,然后判断i是否小于等于n,如果成立则执行下一循环,否则结束循环,执行接下来的语句

只要循环条件为真,循环就会一直执行下去而不执行接下来语句,这种情况就被称为死循环

这样,我们改变n的值即可求得在n次输入内是否有数等于5

接下来是while

while(循环条件)
{
	循环体
}

这里while就比for少很多了,循环条件与for是相同的

这是do-while

do
{
	循环体
}while(循环条件);

do-while和while的主要区别就在于while先判循环条件再执行循环体,do-while先执行循环体再判断条件


接下来是两个循环控制语句

break;

continue;

break用于直接跳出当前循环,执行接下来语句

continue跳过当前循环剩余内容,进入下一循环

我们要知道一点那就是只要能用while/do-while解决的问题都可以用for实现


完结撒花:)