课程首页 › 第3部分 › 第44课

第44课 分成两队

第3部分 不辞辛苦 · 循环结构· 知识点:for循环、if语句、累加

分成两队(for循环、if语句、累加)

插图

使用for进行累加计算会更便捷,尝试使用for循环计算出从1一直累加到2023的总和吧。

温故知新

自己试一试吧!

插图

运行程序:

注意

变量赋值sum=0可不能放在for循环体内,否则每次循环开始sum又会变成0,之前的加法运算就浪费了。

敲黑板

循环变量i大有用处。在这个程序中,i既充当了计数条件,又充当了程序的加数,因此在设置i时需要同时考虑这两个角色的作用。

如果循环变量i只用作计数条件,则只需要考虑次数。

只用作计数条件

例如:输出“我爱C++”5遍。

(1)i初始值为0,条件是i<5,i++,i一次加1循环数字0,1,2,3,4,一共计数5次。

插图

(2)i初始值为1,条件是i<=5,i++,i一次加1循环数字1,2,3,4,5,一共计数5次。

插图

(3)i初始值为10,条件是i>0,i-2,i一次减2循环数字10,8,6,4,2,一共计数5次。

插图

分成两队

18名小精灵列队出发,奇数编号站一队,偶数编号站一队,就像下面这样:

能用程序帮帮它们吗?

(1)循环变量i既需要作为编号输出,又需要作为循环计数。因此设置i的初始值为1,循环条件是i小于或等于18,i逐一增加,一共循环18次。

(2)配合if语句,如果是奇数编号,后面接一个空格:

if(i % 2 !=0){
cout<<setw(2)<<i<<"";}

如果是偶数编号,则换一行输出:

else{
cout<<setw(?2)<<i<<endl;}
插图

巩固练习

(1)下面哪一种for循环的语法是正确的?()

A.for(int i=0; i<=5; i++)B.for(i=0; i<=5; i++);

C.for(i=0; i<=5)

D.for(int i=0; i++)

(2)完善以下代码,使用for循环语句输出100、99、98、…、2、1、0。

插图

(3)如果想将18名小精灵分成3队,排列成以下这样:

你可以使用类似的for循环来实现这个排列吗?