学习笔记——C++ do while语句

作用:满足循环条件,执行循环语句

语法:do{循环语句}while{循环条件};

注意:与while的区别在于do while 会先执行一次循环语句,再判断循环条件。

示例:打印0-9的数字

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	int num=0;
	do{
		
		cout<<num<<endl;
		num++;
	}
	while(num<10);
} 

这样看来do while语句与while语句并无太大的区别,但如果我们把第七行处的num++移动到cout输出的前面,那么结果就会增加一个10;

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	int num=0;
	do{
        num++;//num++移动到前面,即先执行加操作
		cout<<num<<endl;
	}
	while(num<10);
} 

可以看出,do while语句是先执行循环体,然后才判断循环条件是否满足,即是判断下一轮的循环是否发生

练习案例:水仙花数

案例描述:水仙花数是指一个三位数,它的每个位上的数字的3次幂之和等于它本身

例如:1^3+5^3+3^3=153

请利用do......while语句,求出所有3位数中的水仙花数。

思路

代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	//1,先打印所有三位数字
	int num=100;
	int a=0;//个位 
	int b=0;//十位 
	int c=0;//百位 
	do {
		a=num%10;
		b=num/10%10;
		c=num/100;
		if(a*a*a+b*b*b+c*c*c==num){
			cout<<num<<endl;
		} 
	
		num++; 
	}
	while(num<1000);		
		
		
} 

此案例中的关键即是要找到三位数字个位,十位,百位三种数字与整数间的关系。

即个位=num%10

十位=num/10%10

百位=num%100

此外,用while语句也可以实现上述要求

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	int num=100;
	int a=0;//个位 
	int b=0;//十位 
	int c=0;//百位 
	while(num<1000){
		a=num%10;
		b=num/10%10;
		c=num/100;
		if(a*a*a+b*b*b+c*c*c==num){
			cout<<num<<endl;
		} 
		num++;
	}


}

结果:153,370,371,407

相关推荐
~kiss~39 分钟前
大模型的PEFT~ 参数高效微调 Parameter-Efficient Fine-Tuning
学习
大明者省1 小时前
‌Docker Desktop - Virtual Machine Platform not enabled
笔记
minglie11 小时前
zynq中axi_dma的三个实验-第1课:PL搭建
学习
xianrenli382 小时前
Android14自动时区更新
android·学习·framework·aosp14·自动时区
疯狂打码的少年2 小时前
【软件工程】需求工程:需求获取与需求分析
数据库·笔记·软件工程·需求分析
MartinYeung52 小时前
[论文学习]Unsafe LLM-Based Search: AI搜索引擎安全风险的定量分析与缓解
人工智能·学习·搜索引擎
Lhappy嘻嘻2 小时前
网络初识|基础入门:局域网广域网、IP 端口、TCP/IP 五层模型与封装解封装全过程
java·开发语言·网络·笔记·网络协议·tcp/ip
LiaoWL1232 小时前
【SpringCloud合集-06】Spring Cloud Gateway网关学习笔记
笔记·学习·spring cloud
Lhappy嘻嘻2 小时前
网络(二)|Java Socket 编程全实战:UDP 回显 / 词典服务器、TCP 单线程→多线程线程池演进
java·开发语言·网络·学习·面试·udp·tcp
鱼听禅3 小时前
ubuntu学习笔记-使用ls-ml-toolkit工具识别Label Studio数据数据训练yolo模型
笔记·学习·ubuntu