循环条件控制流精解if-elif-else\for\while\break\continue

1、[if for while]关系

条件 If for while 

次数 1 n 0~inf

if是单次的for 和 while

while和for是多次的if

while是可以无穷的、提前判断的for

for是方便指明对象的while

所以这些逻辑有许多共同的性质。

2、

for语句是python和C\JAVA等语言的不同之处

python的思想:for就是对于,不是在判断语句,是为了指明对象,把判断交给ifwhile.

其他语言的for可能新建临时变量(i=0),判断(i<9999),计算(i++)(例如C)

C新手不擅长用while时,很喜欢for(i=0;i<9999;i++)来表达无穷循环

python不让你这么用。

3、[continue break]

continue用于跳过这一次for或while循环体剩下的语句

break用于结束这一层for或while循环,返回上一层。如果有不搭配ifbreak,代码一定可以简化。因为有break,前面就一定有if,才能使for和while有逻辑上的意义。除非是为了做毫无意义的代码逻辑输出实验。

 

While A do B if C break                     #如果满足A,那么做B,直到C或非A才结束

While true do B if C||!A break       #区别在于第一次是否判断A。

While C||!A do B                                #区别在于最后一次是否再do B。

高考算法题经常考这一点,仅仅是没有用代码表示出来而已。

4、

for while if 等条件状语从句都可搭配else。

else 下的语句在条件不成立(或不再成立)时执行

如果for和while内的break退出了for,就不再执行else

否则else一定执行。

 

如果有不插入 if break for elsewhile else,代码一定可以简化。

如果有不插入 iffor break或while break,代码一定可以简化。

由于其中的else是否执行要看break是否执行,for else和while else前面一定有break才能使else不冗余,而break前面又一定要有if。所以以上两种代码的最简单形式为for if break else 和while if break else。所以如果有不搭配 if break 的for else和while else,代码一定可以简化。除非是为了做毫无意义的代码逻辑输出实验。

注意这里的else是与for或while同缩进,才不会被理解为与if的搭配。

5、

可不可以用for或while搭配break来退出上一层中的for或while循环?

不可以。continue和break识别的是最小for或while。

就像是跑得再努力你没法超越最后一名。

 

6、

#当不需要访问元素时,for是while的无穷版

for i in range(0,999999):#绝对有新手喜欢这样搞

    print(“请等待!”)

    sleep(1000)

#当不需要访问元素时,while是for的无穷版

while True:

    print(“请等待!”)

    sleep(1000)

#当需要访问元素时,for 是while的简化升级

sum=0

mylist=[9,8,7,6,5]

for i in mylist:

    sum=sum+i

print('sum=%d,\ni=%d\n'%(sum,i))

 

i=0

sum=0

mylist=[9,8,7,6,5]

while i<=len(mylist)-1:

         sum=sum+mylist[i]

         i=i+1

print('sum=%d,\ni=%d\n'%(sum,i))

 

7、总结

 

if

for

while

单次

或者说循环一次

循环多次

[1,有限大]

零到无穷次

[0,inf)

可搭配break

不建议搭配break

不建议搭配break

判断条件

自动判断溢出

判断条件

#最复杂句式

if

elif

else

#最复杂句式

For 对象指明:

    do A

if X

    do B

        break

else

    do C

do D

‘’’

执行AAA发现X

那么就是AAABD

执行AAAAA没问题

那么就是AAAAACD

‘’’

#最复杂句式

while X1

do A

if X2

    do B

         break

else

    do C

do D

‘’’

执行AAA发现X2

那么就是AAABD

执行AAAA发现X1非

那么就是AAAACD

执行AAAAA没问题

那么就是AAAAACD

‘’’

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值