C++ do...while 循环

2023-10-29

不像 for 和 while 循环,它们是在循环头部测试循环条件。do…while 循环是在循环的尾部检查它的条件。

do…while 循环与 while 循环类似,但是 do…while 循环会确保至少执行一次循环。

语法

C++ 中 do…while 循环的语法:

do
{
   statement(s);

}while( condition );

请注意,条件表达式出现在循环的尾部,所以循环中的 statement(s) 会在条件被测试之前至少执行一次。

如果条件为真,控制流会跳转回上面的 do,然后重新执行循环中的 statement(s)。这个过程会不断重复,直到给定条件变为假为止。

流程图

在这里插入图片描述

实例

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   do
   {
       cout << "a 的值:" << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ do...while 循环 的相关文章

  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • 尝试了解使用服务打开对话框

    我已经阅读了有关使用 mvvm 模式打开对话框的讨论 我看过几个使用服务的示例 但我不明白所有部分如何组合在一起 我发布这个问题寻求指导 以了解我应该阅读哪些内容 以更好地理解我所缺少的内容 我将在下面发布我所拥有的内容 它确实有效 但从我
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 前向声明类型和“已声明为类类型的非类类型”

    我对以下代码有问题 template
  • 现代 C++ 编译器是否能够在某些情况下避免调用 const 函数两次?

    例如 如果我有以下代码 class SomeDataProcessor public bool calc const SomeData d1 const SomeData d2 const private Some non mutable
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • 如何使用 Regex.Replace 从字符串中删除数字?

    我需要使用Regex Replace从字符串中删除所有数字和符号 输入示例 123 abcd33输出示例 abcd 请尝试以下操作 var output Regex Replace input d string Empty The d标识符
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • 在 C 中使用枚举而不是 #defines 作为编译时常量是否合理?

    在 C 工作了一段时间后 我将回到 C 开发领域 我已经意识到 在不必要的时候应该避免使用宏 以便让编译器在编译时为您做更多的工作 因此 对于常量值 在 C 中我将使用静态 const 变量或 C 11 枚举类来实现良好的作用域 在 C 中
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点

随机推荐

  • Java中的SPI机制及接口多实现调用

    1 SPI机制 SPI 全称为 Service Provider Interface 是JDK内置的一种服务提供发现机制 SPI充分体现了面向接口编程的特点 系统内置接口方法 在实际运行中用户可以自定义实现类来满足不通的实现需求 SPI机制
  • Mybatis-plus接口绑定xml语句

    我们启动没有配置任何东西的时候的 报错 AbstractHandlerExceptionResolver java 194 org springframework web servlet mvc method annotation Exce
  • 搭建redis哨兵集群,master宕机后无法执行故障切换的解决方法

    最近在学习搭建redis哨兵集群时 遇到的一些问题 分享一下 首先说明一下 我是同一台虚拟机中开启3个redis实例 模拟主从集群 一个master端口为7001 2个slave端口为7002 7003 3个哨兵sentinel实例端口为2
  • MyBatis-Generator在Eclipse上配置及使用

    之前用MyBatis框架的时候 都是手敲的代码 就感觉到好麻烦的样子 今天就到网上搜了一下MyBatis自动构建工具 就发现在官网上推荐了MyBatis Generator这个构建工具 官网推荐地址 http mybatis github
  • fio数据生成曲线图

    1 背景 我们常常在测试fio的时候 一般只会看到最终测试结果 如下所示 root localhost zhangyi fio filename test file direct 1 rw randwrite numjobs 1 iodep
  • HTML中表格的属性

    tips 不敢说经常用table 介绍本篇文章源于朋友问的一个简单问题 怎么获取table中某个单元格中的数据 table rows length 表格是网页制作时最常使用的元素了 可以说 大部分的网页都是由表格支撑的 没有表格的网页绝对是
  • 邮件发送工具类及邮箱有效性校验

    邮件对象 import lombok Data import java util Date 邮件对象 author huxiang Data public class Email 邮件标题 private String subject 邮件
  • 时间复杂度和空间复杂度的计算

    1 时间复杂度 1 1一层循环 1 1 1解题思路 列出循环趟数t和每轮循环i的值 找到t与i的关系 确定循环停止条件 联立解方程 写结果 1 1 2举例 求时间复杂度 i n n while i 1 i 2 t 0 1 2 i t与i的关
  • Go语言sync.Map

    Go语言中的 map 在并发情况下 只读是线程安全的 同时读写是线程不安全的 如果想实现并发线程安全有两种方法 map加互斥锁或读写锁 标准库sync map Go1 19 新特性 sync map源码 https github com g
  • Servlet的生命周期

    在 Java 中 任何对象都有生命周期 Servlet 也不例外 Servlet 的生命周期如下图所示 图 Servlet生命周期 图 描述了 Servlet 的生命周期 按照功能的不同 大致可以将 Servlet 的生命周期分为三个阶段
  • 一篇文章了解什么是串口,UART、RS-232、RS-422、RS-485

    通讯问题 和交通问题一样 也有高速 低速 拥堵 中断等等各种情况 如果把串口通讯比做交通 UART比作车站 那么一帧的数据就好比汽车 汽车跑在路上 要遵守交通规则 如果是市内 一般限速30 40 而高速公路则可以到120 而汽车走什么路 限
  • android 项目中出现红色感叹号的解决方法

    文本转载 http www apkbus com forum php mod viewthread tid 5629 问题原因 工程中classpath中指向的包路径错误 解决办法 右键项目名称 BuildPath gt Configure
  • Unicode(UTF-8, UTF-16)令人混淆的概念

    为啥需要Unicode 我们知道计算机其实挺笨的 它只认识0101这样的字符串 当然了我们看这样的01串时肯定会比较头晕的 所以很多时候为了描述简单都用十进制 十六进制 八进制表示 实际上都是等价的 没啥太多不一样 其他啥文字图片之类的其他
  • 2023年全国普通高校学科竞赛排行榜,中国高等教育学会版,84项(新增27项)

    2023年全国普通高校学科竞赛排行榜 中国高等教育学会版 84项 新增27项 文章目录 2023榜单竞赛 2023年3月22日 中国高等教育学会高校竞赛评估与管理体系研究专家工作组发布 2022全国普通高校大学生竞赛分析报告 以下简称 分析
  • 八、基础教程-数据列(Series)

    数据列配置是 Highcharts 最复杂也是最灵活的配置 如果说 Highcharts 是灵活多变 细节可定制的话 那么数据列配置就是这个重要特性的核心 一 什么是数据列 数据列是一组数据集合 例如一条线 一组柱形等 图表中所有点的数据都
  • 在create-react-app项目下,使用eslinit和prettier美化代码

    虽然官方脚手架create react app当中默认提供了eslint 但是由于官方的配置不是很充分 导致了在是进行代码优化方面不是很理想 但是 我们可以自行配置达到写出高质量代码的目的 ESlint 不是自带格式化吗 为什么还要用 Pr
  • 央行发行数字货币对我们意味着什么?

    实际上恰恰在这种行情下 我们才能不受价格暴涨和利益诱惑沉下心来研究业界实质性的进展 发现孕育下一波红利的机遇 央行数字货币有了实质性进展 8月10日 中国人民银行支付结算司副司长穆长春表示人民银行的数字货币已经呼之欲出 并介绍了人行数字货币
  • 电路基础(1)电路模型和电路定律

    电路中的电压 电流之间具有两种约束 一种是由电路元件决定的元件约束 另一种是元件间连接而引入的几何约束 就是拓扑约束 后者由基尔霍夫定律来表达 基尔霍夫定律是集总参数电路的基本定律 1 电路和电路模型 电源又称为激励源或激励 由激励在电路中
  • python使用HanLP命名实体识别(以识别人名为例)

    首先需要安装依赖包 pip install pyhanlp 识别人名的代码如下 from pyhanlp import HanLP def extract chinese name string str gt list 使用HanLP人名识
  • C++ do...while 循环

    不像 for 和 while 循环 它们是在循环头部测试循环条件 do while 循环是在循环的尾部检查它的条件 do while 循环与 while 循环类似 但是 do while 循环会确保至少执行一次循环 语法 C 中 do wh