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

2023-12-29 00:36:35

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
    语句1while(条件表达式);

说明: 语句 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语句的用法

文章来源:https://blog.csdn.net/m0_38139250/article/details/135272805
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。