C++系列-第3章循环结构-26-认识do-while语句
在线练习:
http://noi.openjudge.cn/
https://www.luogu.com.cn/
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do-while
循环语句是编程中的一种控制结构,它的设计有其特定的用途和优势:
- 确保循环体的执行:
do-while
循环首先执行循环体,然后再判断循环条件是否满足。这意味着即使循环条件一开始就不满足,循环体也至少会执行一次。这在某些情况下是必要的,比如初始化变量或者执行某些操作。 - 简化代码逻辑:在某些场景下,使用
do-while
循环可以简化代码逻辑。尤其是当需要至少执行一次循环体,而循环条件又可能会在执行过程中改变时。 - 与
while
循环的区别:与while
循环相比,while
循环是先判断条件,如果条件不满足,则循环体不会执行。而do-while
循环则是先执行循环体,再判断条件,因此循环体至少会执行一次。 - 适用特定场景:例如,在用户界面编程中,可能需要首先显示一个界面,然后根据用户的输入来决定是否继续执行某些操作。这时,
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语句的用法