0
点赞
收藏
分享

微信扫一扫

C++总结 | 15 while与do-while



戳一戳!和我一起走进C++的世界

导读

C++是信息学中非常重要的一门课程,也是绝大多数学生入门信息学、参加信息学竞赛所必备的一门编程语言。


掌握C++,不仅可以让孩子对电脑、编程有更加深刻的认识,也能将学习信息学的方法应用到其他学科领域,特别是能够促进孩子对数学逻辑的理解。


本篇文章中,我们一起来回顾一下循环结构、while循环和do-while循环,并完成课后小练习吧!



1 循环结构

1 三大结构回顾

我们前面讲到,我们在C++中,有三大结构,分别是:


顺序结构
分支结构
循环结构


三大结构特点总结请回看下面这篇文章:


​​C++总结 | 12 for循环及其应用​​


顺序结构不用多说,顺序结构是最基本的结构,一个程序中必然会有顺序结构的出现。


分支结构主要有如下两类:


if系列;
switch-case语句;


这两大类的主要区别可以回看下面这篇文章:


​​C++总结 | 11 开关语句switch-case​​


2 循环结构

循环结构有三大类


for循环;
while循环
do-while循环;


前面课程中,我们讲解了for循环,今天我们要讲解的是while系列,while系列一共有两个:while循环do-while循环


其实不管是哪种循环结构,重要的是,从哪里开始,什么条件结束,执行过程中做哪些语句。

2 while循环

1 结构特点

while语句结构如下:


C++总结 | 15 while与do-while_循环结构


while循环流程如下:


(1)首先我们执行语句1,然后判断判断条件是否成立;如果成立执行语句块语句2

(2)然后我们再判断判断条件是否成立;如果成立执行语句块语句2

(3)重复上面的步骤(2),直到判断条件不成立,退出循环。


要注意的是:

1.语句2可以写在语句块的上面,重点是先执行语句2还是执行语句块

2.语句2不一定属于语句块是因为:语句块是执行一系列操作的,语句2是单独修改循环条件的


最简单的示例如下:


int i = 0;
while(i<10){
cout<<"hello"<<endl;
i++;
}


2 应用

所有循环类型的,都可以使用for循环来做,也可以用while循环来做。


while在括号中,只写判断条件,判断条件的前置(语句1),写在while的前面,判断条件的修改(语句2)写在while语句中。所以一般来说,while循环常用于循环次数不固定的循环。


while语句经常用于做一个简易操作系统。根据不同的选择,执行不同的操作,当执行退出功能时,才跳出循环。

3 死循环

死循环是说,不管语句2如何改变条件,判断条件永远成立。或者没有语句2来改变条件,一旦初始条件满足判断条件,就会一直满足下去。


比如:


#include<iostream>
using namespace std;

int main(){
int i = 0;
while(1){
cout<<"hello"<<endl;
i++;
}

return 0;
}


上面这个例子就是不管i的值如何改变,判断条件是永远成立的(1代表的是true)。


下面这个例子是缺失了条件2,也会导致死循环:


#include<iostream>
using namespace std;

int main(){
int i = 0;
while(i<10){
cout<<"hello"<<endl;
}

return 0;
}


通过这个例子,我想大家应该能理解,为什么要把语句2单独从语句块中拿出来了。

3 do-while循环

1 结构特点

do-while结构如下:


C++总结 | 15 while与do-while_while循环_02


do-while循环流程如下:


(1)首先我们执行语句1,然后执行语句块语句2,执行完后判断判断判断条件是否成立。

(2)如果上面的判断条件成立执行下一个语句块语句2,执行完后再判断判断条件是否成立。

(3)重复上面的步骤(2),直到判断条件不成立,退出循环。


要注意的是:

1.和while要注意的两点一致。

2.不管条件成立不成立,语句块和语句2都要先执行一次。

3.while后面要加分号;”。


最简单的示例如下:


int i = 0;
do{
cout<<"hello"<<endl;
}while(i<10);


2 应用

while先执行,后判断,常用于那些需要先执行操作,根据操作结果进行判断的循环语句


例如,我们要求用户输入一个六位数的密码,如果用户输入的不是六位数,就让它一直输入下去。


#include<iostream>
using namespace std;

int main(){
int i;
do{
cout<<"请输入一个六位数的密码,如果不是六位数,就要重新输入哦:"<<endl;
cin>>i;

}while(100000>i||i>999999);
cout<<"恭喜你输入正确,你输入的密码是:"<<i<<",请检查!"<<endl;
return 0;
}


执行结果如下:


C++总结 | 15 while与do-while_循环结构_03


4 循环结构对比

1 for循环与while系列对比

到这里,三大循环语句就讲完了,我们来总结一下他们的区别。


for循环将语句1、语句2和判断条件写在一起,也可以分开写,按照while和do-while的格式。但是一般来说,写在一起更常用。


for循环常用于循环次数一定的循环结构,比如我们明确知道,我们要执行100次,就使用for循环;

如果不明确循环次数,而是根据执行结果确定是否满足判断条件,我们一般使用while和do-while循环,比如我们根据输入的值是否合法来判断是否需要再次输入。

2 while循环与do-while循环对比

while和do-while的区别在于先执行还是先判断


while语句是先判断,后执行。

do-while语句是先执行,后判断。


3 使用总结

经过上面的对比介绍,我们做如下总结:


如果我们在使用过程中,明确了循环的次数,使用for循环。

如果我们不确定次数,但是要先判断条件是否成立,再决定是否执行功能,使用while循环。

如果我们不确定次数,要根据我们执行的结果来判断条件是否成立,使用do-while循环。

4 习题

根据今天讲的内容,完成下面的两道习题。

1 水仙花数

水仙花数满足如下要求:


(1)是一个三位数;
(2)这个数 = 每一位上的数的立方和


例如:三位数 153 = 1³ + 5³ + 3³ 就是一个水仙花数。


分别使用三类循环语句输出100-999以内的所有水仙花数。


2 角谷猜想

角谷猜想:对于每一个正整数,执行如下流程:


(1)如果它是奇数,就对它乘3再加1;
(2)如果它是偶数,就对它除以2;


执行到最后,结果一定为1。


例如:


6->3->10->5->16->8->4->2->1


使用while循环或者do-while循环验证角谷猜想。



AI与区块链技术

C++总结 | 15 while与do-while_while循环_04

长按二维码关注













举报

相关推荐

0 条评论