for这一函数的基本格式:
for(条件一;条件二;条件三){
语句
}
根据我个人的理解,对三个条件进行了一定的阐释:
for(定义循环对象;对循环对象进行判断;进行循环)
例如:for(i=1;i<Num;i++)
注意:
1.这里需要提前储存i;
2.关于编译器对for语句的解读,先执行i的赋值,然后进行判断,如果符合条件,则执行for条下的语句,如果不符合,终止执行,最后执行完一次循环后,返回语句,进行循环,根据需要的循环条件继续执行
3.大括号部分表示其中语句皆为执行内容,否则只执行for的下一条语句;小括号后不加分号
这里有一道经典的例题,简单表述为:
现在有几个学生的成绩的数据,请(用for循环语句)找出其中的最大值和最小值。
我们先想思路:
1.我们需要能够让对方有办法给出学生的人数和他们分数的数据;
2.我们要想一个能够比较多个分数的办法,如果我们总是拿后一个学生的分数和前一个学生的进行比较,那我们就可以得到其中的最大值与最小值;
得到思路后,我们应该确定可能使用的变量的种类和个数(当然也可以再补充),以及我们需要调用的函数(这里是for)
根据我学习过程中的想法,在用for语句时,最重要的是,你明白你的循环对象是什么,你的循环次数i需要和什么作比较。可能表述有些不清楚,那我们结合这道题来看:
在这里,我们要对每个学生的分数和前一个学生的分数进行比较,这是我们循环的对象,也是循环的语句中要表述的内容,其次,我们循环的次数应该是学生的人数。
最后,我们要做的是一些细节的处理和代码的编写。包括第一个学生的数据如何进行比较等。但大体的内容就是以上提到的。得到的代码如下:
#include <iostream>
using namespace std;
int main()
{
int Score,Max,Min,Num,i;
Min=100;
Max=0;
cout<<"请输入学生人数"<<endl;
cin>>Num;
for(i=1;i<Num;++i){
cout<<"请输入第"<<i<<"名学生的成绩"<<endl;
cin>>Score;
if (Score>Max)
Max=Score;
if (Score<Min)
Min=Score;
}
cout<<"最高的分数是:"<<Max<<endl;
cout<<"最低的分数是:"<<Min<<endl;
return 0;
}
在这里出现了一个问题:当我的学生人数为五人时,运行这个代码,只出现了四次循环,就是只弹出了四个输入成绩的窗口。
根据我们对for的解读,当i=4时,代码继续执行,可是当返回i++时,i变成了5,在第二个条件时经过判断,无法执行。
所以,这里需要注意的是,为了进行五次循环,应该有i<6或者i<=5出现。在这里可以直接写成i<Num+1;
这里还涉及到一个变量初始化的问题:
在程序中,我对Max和Min进行了初始化赋值,这是因为我在第一次循环中就进行了比较,如果不赋值,比较将无法进行。赋值Max=0,Min=100,保证了第一次的比较一定是第一个学生的数据被存储,与后面的学生进行比较。
调整后,就能得到一个正确的代码。
这篇分享就到此结束。后面可能还会有关于循环的进一步学习,欢迎大家关注。
如有不当之处,欢迎大家批评指教。