for语句
照例先看看流程图:
首先先执行表达式一:初始化循环变量,接下来就是执行表达式二的判断部分,表达式二的结果如果为零(假),则循环结束;表达式的结果如果不等于0(为真),则执行循环体内语句,循环语句执行完后,再去执行表达式三:调整循环变量,然后再去表达式二的地方判断,查看表达式二的结果是否为0,决定循环是否继续.
整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3三个部分在循环。
7.3 for循环的实践
来一个同样的练习一:在屏幕上打印1-20的值
参考代码:
int main(void) { for (int i = 1; i <= 20; i++) { printf("%d ", i); } return 0; }练习二:计算1-100之间3的倍数的数字之和
参考代码:按最常规的思路,我们应该遍历1-100的数字,用if条件判断这个数是否是3的倍数,如果是,就加起来.
int main() { int i = 0; int sum = 0; for(i = 1; i <= 100; i++) { if(i % 3 == 0) sum += i; } printf("%d\n", sum); return 0; }也可以直接产生3的倍数来进行求和,这样就省去了多余的循环和判断
int main() { int i = 0; int sum = 0; for(i = 3; i <= 100; i += 3) { sum += i; } printf("%d\n", sum); return 0; }以上两种代码都能实现要求.
7.4 while循环和for循环的对比
for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是for循环的三个部分⾮常集中,便于代码的维护,⽽如果代码较多的时候while循环的三个部分就比较分散,所以从形式上 for 循环要更优⼀些。
