C++系列-第3章循环结构-26-认识do-while语句

简介: C++系列-第3章循环结构-26-认识do-while语句

C++系列-第3章循环结构-26-认识do-while语句

在线练习:

http://noi.openjudge.cn/

https://www.luogu.com.cn/

对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

do-while循环语句是编程中的一种控制结构,它的设计有其特定的用途和优势:

  1. 确保循环体的执行do-while循环首先执行循环体,然后再判断循环条件是否满足。这意味着即使循环条件一开始就不满足,循环体也至少会执行一次。这在某些情况下是必要的,比如初始化变量或者执行某些操作。
  2. 简化代码逻辑:在某些场景下,使用do-while循环可以简化代码逻辑。尤其是当需要至少执行一次循环体,而循环条件又可能会在执行过程中改变时。
  3. while循环的区别:与while循环相比,while循环是先判断条件,如果条件不满足,则循环体不会执行。而do-while循环则是先执行循环体,再判断条件,因此循环体至少会执行一次。
  4. 适用特定场景:例如,在用户界面编程中,可能需要首先显示一个界面,然后根据用户的输入来决定是否继续执行某些操作。这时,do-while循环就是一个很好的选择,因为它首先会显示界面(循环体),然后根据用户的输入来判断是否继续。
    总的来说,do-while循环语句是编程语言提供的一种工具,用来满足特定场景下的编程需求。它与其他循环语句(如for循环、while循环)一起,帮助程序员编写出更加灵活、高效的代码。

do-while语句格式

如果主体中只有单个语句的话,花括号可以省略。(如格式1)

格式1

do
    语句1;
while(条件表达式);

说明: 语句 1是 do-while 循环语句的循环体,它会先执行一次,如果满足条件,还会被重复执行。

格式2

do{
    语句1;
}
while(条件表达式);

说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式。

执行过程

(1) 执行一次循环体。

(2) 计算表达式的值,若为真,则转向第(1)步。

(3) 如表达式的值为假时,结束循环。

while 和 do while的对比

下面是一个简单的C++示例,演示了while循环和do-while循环的区别。这个例子中,我们使用while循环和do-while循环来计算从1加到10的和。do-while循环的特点是至少执行一次循环体,即使循环条件一开始就不满足。

#include <iostream>
int main() {
    int sumWhile = 0;
    int sumDoWhile = 0;
    int i = 1;
    int j = 1;
    int n = 0; // 再取值1 10 对比下
    // 使用while循环
    std::cout << "Using while loop:" << std::endl;
    while (i <= n) {
        sumWhile += i;
        i++;
    }
    std::cout << "Sum using while loop: " << sumWhile << std::endl;
    // 使用do-while循环
    std::cout << "Using do-while loop:" << std::endl;
    do {
        sumDoWhile += j;
        j++;
    } while (j <= n);
    std::cout << "Sum using do-while loop: " << sumDoWhile << std::endl;
    return 0;
}

如果n为0,则输出为:

在这个例子中,while循环首先检查条件(i <= n),如果条件满足,则执行循环体。而do-while循环则首先执行循环体,然后检查条件。如果条件满足,则继续执行循环体。

编译并运行这段代码,你会看到两种循环都能正确计算出从1加到n的和,但是do-while循环至少执行了一次循环体,即使条件一开始就不满足(在这个例子中,条件始终满足,所以两种循环都会执行循环体)。这个例子突出了do-while循环的特点,即循环体至少执行一次。

案例-人类的本质

[题目描述]

人类的本质是复读机.现在给定一个小写字母和次数,请输出这个字母指定次数。

[输入格式]

第一行一个小写字母

第二行一个数字 n,表示次数

[输出格式]

输出这个字母 n 次[样例输入]

a

2

[样例输出]

aa

#include<bits/stdc++.h>
using namespace std;
char c;
int n;
int main()
{
    cin>>c>>n;
    do
    {
        //cout<<n<<endl;
        cout<<c;
        n--;
    }
    while(n);
    return 0;
}

案例-多数求和

题目描述

输入若干个数(不超过 1000 个数),求他们的和。

输入

一行若干个用空格分隔的整数 ai(1≤ai≤104 ),最后会以 −1 表示结束。(−1 不需要统计)

输出

一个整数,表示 这些数的和。

样例输入

10 20 30 -1

样例输出

60

#include<bits/stdc++.h>
using namespace std;
int sum,x;
int main()
{
    do
    {
        sum+=x;
        cin>>x;
    }
    while(x!=-1);
    cout<<sum;
    return 0;
}

输出为:

总结

本文是C++系列博客,主要讲述do while语句的用法

相关文章
|
4天前
|
C++
c++循环结构讲解
c++循环结构讲解
25 0
|
4天前
|
C++ 容器
C++循环结构
C++循环结构
|
4天前
|
C++
C++循环结构实现的猜数字游戏
C++循环结构实现的猜数字游戏
57 1
|
4天前
|
程序员 C++
C++循环结构
C++循环结构
16 0
|
4天前
|
机器学习/深度学习 资源调度 物联网
C++系列-第3章循环结构-29-累乘和连除
C++系列-第3章循环结构-29-累乘和连除
|
4天前
|
机器学习/深度学习 人工智能 C++
C++系列-第3章循环结构-28-累加和常数e
C++系列-第3章循环结构-28-累加和常数e
|
4天前
|
算法 C++
C++009-C++循环结构while
C++009-C++循环结构while
|
4天前
|
算法 C++
C++008-C++循环结构简单统计
C++008-C++循环结构简单统计
|
4天前
|
算法 C++
C++007-C++循环结构
C++007-C++循环结构
|
10月前
|
C++
C++学习笔记:循环结构
C++学习笔记:循环结构