前言
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循环的相关内容