6

——while循环的改进——

我们之前设置的游戏规则为:只给你三次猜测的机会,如果三次猜不中,就显示你已经猜了太多次退出了。现在我想修改游戏规则为:当你三次都猜错了之后,会询问你你是否还想继续猜。如果是的话,可以继续给三次机会进行猜测,如果否就退出。

主要的思想是:在while循环内,这时的count已经等于3,我们在此时设置一个确认标志,如果这个这个确认标志不是N,我们就继续猜,方法是可以把count清零,给count赋值为0,再返回判断count<3,可以继续while循环;如果确认标志为N,count就不满足count<3的条件了,就会退出游戏。

此时程序为:

继续猜的情况下:

不想继续猜的情况下:

——for循环——

先写一个最简单的for循环:

上面这个for循环,从loop0打印到了loop9。

i是个临时变量,range(10)就相当于生成一组数,(0,1,2,3,4,5,6,7,8,9),每循环一次,就取一个数,第一次是0,第二次是1,……等等,然后执行下面的循环内容,这样这个循环就执行了10次。

把之前猜年龄(有三次机会)的while程序可以稍作修改,改成 for循环的: 

结果依然是正确的:

else什么时候执行呢?当for循环完整的走完之后走else语句。

我现在又有新的想法,之前打印的是loop0、loop1、loop2、……、loop9,现在我想隔一个打印一个,比如打印loop0,、loop2、loop4、等等,这个该怎么操作?

那隔两个打印一个呢?

range(),括号里面的格式为:起始位置,终止为止,步长。(步长默认为1)

——continue的用法——

我们都知道,循环里面一般有break,除此之外,还有对应的一个用法就是continue。

为了了解这个循环的执行步骤,我们断点执行一下:

①先是i等于0,走到下一步,判断i<3

②打印输出“loop0”

③if条件满足,所以不会走else语句,然后往下继续执行,打印输出“hello”。

④第一个循环结束,返回循环。

⑤开始第二个循环,注意此时的i等于1,判断if条件,i<3满足。

⑥打印输出“loop1”。

⑦if条件满足之后,就不会再走else语句了,然后往下继续执行,打印输出“hello”。

同样的,i=2时同i=1和i=0是一样的。

⑧当i=2结束时,返回循环。

⑨i=3,判断if条件,不满足。走else语句,是continue,返回循环。

⑩返回循环。

(11)i=4,判断if条件,if条件不满足。

(12)走else语句,然后是continue,返回循环。

i=5以后都是一样的。

我们来总结一下,break的作用是跳出整个循环,continue的作用是跳出本次循环,继续到下一次循环。

举个例子:

结果为:

大循环套小循环,一共打印了100次。

我们在小循环里面加一个条件判断:

结果是这样的:

一共打印了40次。

这样就看出了break的作用,break的作用是跳出当前的小循环,而不是两层循环都跳出了。

附:三次结束后询问要不要继续猜的for版本。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容