C++初学者教程第十章:while循环

前言

首先呢,我还是要道歉我木有按时更新(显然的嘛)。

OK,今天呢我们就正式来到while循环

while循环真身

先来看看这东西原来长啥样。

while(循环执行判断条件)
{
    循环代码
}

也就是说其执行流程长下面这样:

 所以呢,方便初学者理解,我们通常初学会这样,比如说。

while(true)
{
    if(退出循环条件) break;
}

一句句解析:

首先,第一句是while(true),代表了死循环。

第二句则是当出现退出循环的条件时,用break跳过。

循环操作的一些语句

既然提到了break,我们就详细讲一下三个常见的操作循环的语句。

1.break

break的语句很多时候都会用掉,它的作用也很简单,直接跳出循环,执行循环外面的语句。

for(;;)
{
    break;
}

比如以上代码,首先创立了死循环,其次呢,我们在执行的时候,有了break语句,就可以从循环中跳出去。

2.continue

这个语句的内容也很简单,就是跳过本次循环,它和break的区别在于break是直接跳出循环,而continue的功能是跳过本次循环接下来的部分,直接执行下一轮循环。

for(;;)
{
    continue;
}

所以以上的代码continue是毫无作用的,因为我开了一个死循环,而死循环次数是无穷无尽的,也就是说,我们跳过了一次,继续执行第二次,但因为有无限次的执行次数,所以跳过一次无法避免继续死循环下去。

3.goto

这个最简单也最实用,它的主要功能不只局限于循环,而是都可以用,该语句的功能是指定一个标签位置,跳转到那个标签:

int c = 0;
begin:
c = c + 1;
c -= 10;
goto begin;

可以看到,我在中间做了一大堆东西,最后回到了beginz标签的位置,这也是一个非常实用的,通常运用于跳回一大段代码、跳出多层嵌套循环等复杂不方便使用上两个的情况下进行。

while循环使用情况

while循环的使用情况通常是在有循环执行条件的时候进行的,它也用于进行部分高难度需要进行多次可能和判断的循环,通常有两种使用情况。

while(true)
{

}

创立死循环,在其中进行一些判断和操作。

while(执行条件)

这也是最中规中矩的了,我们有了这些,就可以大量补全我们使用循环的需求。

for循环和while循环使用辨析

优点罗列

for循环:用于计数、执行数量次数的执行,或者固定需要在循环中调用循环变量的,通常选择使用for循环,for循环的优点在于有循环变量、通过循环变量条理清晰,调试轻松等特点,并且也可以人为轻松操作循环的执行次数。

while循环:用于有执行条件的变量,没有循环变量的问题,并且适合复杂的需要多次判断的循环+死循环等。 

题目分析

接下来来几个题目分析。

1.我们需要根据输入的n连续输出  

我们分析一下:首先, 他输入了一个数字n,然后需要执行n次的输出操作,可以看到,明显出现了循环次数,那么就使用for循环。

for(int i = 1;i <= n;i++)
{
    cout << "FrancisWizard真帅!" << endl;
}

2.输入一个数t,获取它的位数

这个刚开始肯定没有头绪,但是可以慢慢思考。首先,新建一个int变量cnt ,记录位数。其次可以备份一个t,然后给t/10,当不够除了,就结束了。因为有“不够除”这个条件,所以使用while。

int cnt = 0;
while(t > 0)
{
    cnt++;
    t /= 10;
}

选择总结

大家都有感觉了吗?实际上,在简单的情况下,for和while可以互换,但是程序的本意是要干净整洁简单,所以什么简单什么好,不要怕偷懒。情况也不一定是一成不变,要学会变幻,使用自己需要的工具去简单地解决实际问题,这才是程序的真谛。

拓展

拓展1:while学习for

while(n)
{
    n--;
}

可以看到,这里的循环会执行n次,为什么呢,讲解:

第一句,将while的执行条件设置为n,注意,while的括号里只能有bool,代表只有0和1两个数值,当放了一个n时,会强制转换成bool,除了0,其他数都会转换成1。

第二句则是让n自己减去1,这样到最后,n是0了,循环就停止运行了。

拓展2:do...while

do
{

}while(执行条件);

这里不是普通的一个while语句,是一个do......while语句,它和while的最大区别是他是先执行语句再判断,也就是说如果不符合执行条件,while循环会直接不执行,而do......while语句会执行一次。

总结

OK,今天主要钻研了while循环的相关内容,还是很累的,休息去吧拜拜~

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值