当你遇见一道题,让你输出一个1时,你可以毫无顾虑地输出1,让你输出1到10时,你可能会皱皱眉,当他让你输出1到10000时,相信你一定会直接气的砸电脑的,循环结构就是为了解决这种单调反复的东西而生的,这里主要介绍 for 和 while两种。
for
单层
for是一种极为常见的循环结构主要写法是这样的:
for(int i=1;i<=n;i++)
看起来很怪不如这样看
for(int 一个变量;继续循环的条件;变量的变化)
这样是不是就顺眼多了,再来回顾一下最开始那道题,可以这么写
for(int i=1;i<=10000;i++){
cout<<i<<" ";
}
例题:
给定一个整数n,输出从1到n的和。
样例
输入
2
输出
3
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int sum=0;//初始化为0
for(int i=1;i<=n;i++){//开始循环,i从一到n
sum+=i;//每次加上i
}
cout<<sum;
return 0;
}
注:本题可以用高斯算法解决,但是意在训练循环结构。
多层
多层循环嵌套和多层if else有异曲同工之妙,在此不多赘述了。
while
while循环的写法如下
while(循环条件){
循环内容;
}
看起来比for直观多了(至少我当时这么认为的),只要括号里的条件满足,就可以继续转下去。
就以输出10000个一为例:
代码如下:
#include<iostream>
using namespace std;
int main(){
int i=1;
while(i<=10000){
cout<<1<<" ";
}
return 0;
}
do while
学习了while以后,我们发现while和for都是先判断是否满足条件然后在循环的,那有没有先循环然后再判断的语句呢?当然是有的,就是我们的do___while语句。写法如下:
do{
循环内容
}while(继续循环的条件);
(这个暂时还没找到例题)
PS
本人第三篇文章,写的仓促了一点,希望大家见谅。