C++大学教程(第九版)5.25去除break语句 5.27去除cintinue语句

5.25题目

(去除break和continue)break和continue 语句遭到质疑的原因是它们的非结构化性。实际上,break和continue 语句总能用结构化的语句取代。请详述如何从程序的一条循环语中去除break语句,并用某种结构化的手段替代。提示:break 语句用于在循环体内离开一个循环。另一个离开的办法是让循环继续条件测试失败。请考虑在循环继续条件测试中利用另一个测试,指出"由于符合一个break'条件所以提前退出"。请使用在此介绍的方法替换图5.13中的break语句。

思路:
添加一个变量flag,用于结束循环。具体实现过程代码如下。

代码

cpp 复制代码
#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语句。

代码

cpp 复制代码
#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;
}

运行截图

相关推荐
勤奋菲菲11 分钟前
Egg.js 完全指南:企业级 Node.js 应用框架
开发语言·javascript·node.js
长安城没有风35 分钟前
从入门到精通【Redis】初识Redis哨兵机制(Sentinel)
java·数据库·redis·后端
光头闪亮亮38 分钟前
基于 wxWidgets 框架的桌面应用程序-WebView 浏览器控件与Go后端数据交互
c++
蒂法就是我39 分钟前
java集合类的底层类是哪个
java·开发语言
无限进步_39 分钟前
冒泡排序的多种实现方式详解
c语言·数据结构·c++·算法
Hoking1 小时前
LangChain4j集成SpringBoot接入百炼大模型(Qwen)
java·人工智能·spring boot·llm
浪里小白龙591 小时前
零信任平台接入芋道框架
java
ajassi20001 小时前
开源 C++ QT QML 开发(十六)进程--共享内存
c++·qt·开源
代码匠心2 小时前
从零开始学Flink:流批一体的执行模式
java·大数据·后端·flink·大数据处理
一只程序烽.2 小时前
java项目使用宝塔面板部署服务器nginx不能反向代理找到图片资源
java·服务器·nginx