5.25题目
(去除break和continue)break和continue 语句遭到质疑的原因是它们的非结构化性。实际上,break和continue 语句总能用结构化的语句取代。请详述如何从程序的一条循环语中去除break语句,并用某种结构化的手段替代。提示:break 语句用于在循环体内离开一个循环。另一个离开的办法是让循环继续条件测试失败。请考虑在循环继续条件测试中利用另一个测试,指出“由于符合一个break’条件所以提前退出”。请使用在此介绍的方法替换图5.13中的break语句。
思路:
添加一个变量flag,用于结束循环。具体实现过程代码如下。
代码
#include <iostream>
using namespace std;
int main()
{
unsigned int count;
bool flag = 1;
for (count = 1; flag == 1 && count <= 10;count++ )
{
cout << count << " ";
if (count+1 == 5)
{
flag = 0;//结束循环的条件
}
}
cout << "\nBroke out of loop at count = " << count << endl;
return 0;
}
运行截图
5.27题目
(去除continue 语句)详述如何从程序的一条循环语中去除continue 语句,并用某种结构化的手段替代。请使用在此介绍的方法替换图514中的continue语句。
代码
#include <iostream>
using namespace std;
int main()
{
unsigned int count;
int num;//控制跳过的变量
for (count = 1; count <= 10; count++)
{
if (count != 5)
{
cout << count << " ";
}
else
{
num = count;
}
}
cout << "\nBroke out of loop at count = " << num << endl;
return 0;
}