第五章 重复和循环语句
目录标题
5.1计数循环和while语句
循环体:在循环中被重复执行的一组语句。
计数器控制的循环(计数循环):由循环控制变量的值决定循环执行次数的循环。
循环控制变量:决定循环执行次数的变量。
5.1.1while语句
循环语句:用于确定是否执行循环体的条件,当该条件为真时,执行循环;当该条件为假时,跳出循环体。
5.1.2while语句的语法规则
死循环:永远执行下去的循环。
while(循环条件)
语句;
注释:如果首次测试循环条件时其值为假,则不执行循环语句。
5.2在循环中累计求和或乘积
在循环中加入加法或乘法。
5.2.1程序风格——编写通用的循环
5.2.2求一组数据的乘积
条件循环:当某个特定条件为真时,重复执行数据处理过程的循环。
5.2.3复合赋值运算符
几种格式的赋值语句:
1)变量=变量 op 表达式;
2)变量 op =表达式;
3)变量=变量 op(表达式);
op 为算术运算符
5.3for语句
格式:for(初始化表达式;
循环条件;
更新表达式)
语句;
例子:for(i=0;i<max;i++)
cout<<i << endl;
//显示小于max的非负数
副作用:执行某一操作而引起变量的值发生改变。
//计算阶乘的函数
int fact(int n)
{
int product; //定义生产数
product=1;
for(int i=n;i>1;i--) //阶乘
product=product*i;
return product; //返回生产数
}
5.4条件循环
//条件循环的格式:
初始化循环控制变量
while包含循环控制变量的条件为true
执行循环体
更新循环控制变量
//条件循环的语句实现:
cout<<"Enter number of employees: ";
cin>>numEmp; //输入数据
while(numEmp<0) //测试
{
cout<<"Negative number invalid; try again: ";
cin>>numEmp; //更新
}
5.5 标志控制的循环
//格式
1)设置标志的值为假。
2)while标志的值为false时
3)执行某些操作。
4)如果预期事件发生,则重置标志的值。
//例子:
char getDigit()
{
char nextChar; //输入-下一个数据字符
bool digitRead; //状态标志——设置为真
// 当数据字符可读
digitRead=false; //还没有数据字符可读
while(!digitRead)
{
cin>>nextChar;
digitRead=(('0'<=nextChar)&&(nextChar<='9'));
}
return nextChar; //返回第一个数据字符
}
5.6do—while语句
格式:do
语句:
while(表达式);
例子:do
{
cout<<"Enter a digit character: ";
cin>>ch;
}while((ch<'0')||(ch>'9'));
5.7while,for和do-while循环
while:当循环为非计数循环时,最常用的循环。循环条件的测试先于循环体的执行,循环体有可能一次也不执行。
for:常用于计数循环,当初始化及更新步骤简单时,使用for循环十分便利。循环条件的测试先于循环体的执行。
do-while:该循环常用于循环体至少执行一次的场合。
5.8循环嵌套
例子:显示乘法表
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
//显示表标题
cout<<" ";
for(int colHead=0;colHead<11;colHead++)
cout<<setw(3)<<colHead;
cout<<endl;
cout<<"_ _ _ _ _ _ _ _ _"<<endl;
//显示表,逐行
for(int rowVal=0;rowVal<10;rowVal++)
{
cout<<setw(3)<<rowVal<<' ';
//显示全部的乘法表
for(int colVal=0;colVal<11;colVal++)
cout<<setw(3)<<rowVal*colVal;
cout<<endl;
}
return 0;
}
5.9调试,测试程序
观察窗口:程序调试过程中跟踪显示变量的窗口。
诊断输出语句:程序调试过程中显示中间结果的输出语句。
循环控制变量边界值:循环控制变量的初值和终值。