3.5 循环控制

break和continue用于循环运行的时候进行控制。它们的功能是:
break:跳出当前循环,不再执行剩余的循环,即使条件仍然成立。break语句的出现宣告了判断是否死循环不能光看条件。
continue:停止执行本次循环剩余的代码,立即回去判断循环条件。 现在我们来看两个例子:
i=0
while i < 100:
    i+=1
    if(i==56):
        break
    print(i)
这段代码将打印1、2、3…53、54、55。因为到了56,就符合了中间的if语句,运行了break,剩余的所有循环都被打断不再执行了——就算条件仍然成立。 如果是这样:
i=0
while i < 100:
    i+=1
    if i==56:
        continue
    print(i)
这段代码将打印1、2、3…53、54、55、57、58...99、100。唯独少了56。到了56,就符合了中间的if语句,运行了continue,剩余的代码不再执行,立刻回到条件处。也可以理解为,直接开始新的一次循环。continue写得不慎,容易造成死循环,例如上面的代码,只要把i加1的位置换一下:
i=0
while i < 100:
    if i==56:
        continue
    i+=1
    print(i)
出现了什么?解释一下原因。
continue用得比较少,因为通常用if语句完成了这类功能。下面的这段代码的功能也是打印1、2、3…53、54、55、57、58...99、100:
i=0
while i < 100:
    i+=1
    #i不等于56的时候才打印 
    if i != 56:
        print(i)
此外还有一个pass,它表示空语句,什么也不做,直接略过,主要是为了占住位置,保持结构:
i=0
while i < 100:
    if i%3==0:
        print(i)
    elif i%4==0:
        pass
    else:
        print(i)
    i+=1
    这段代码出现了pass,在条件i%4==0成立的时候,什么也不做,也许是为了以后有代码需要写在此处,现在先占着位置,这里不能用continue,如果用了会出现死循环。

循环后的else
循环的也可以使用else,当循环正常停止的时候(没有break,return或任何异常),或者一开始循环的条件就不成立的时候,else会执行,例如:
#第一个例子一开始循环条件就不成立了,直接打印i>=0
i=10
while i<0:
   print(i)
   i-=1
else:
   print("i=",i)
print("-------------我是分割线----------------")
#第二个例子,循环打印10到0,循环结束后又打印了i>=0
i=10
while i>0:
   print(i)
   i-=1
else:
   print("i=",i)
print("-------------我是分割线----------------")
#第三个例子,循环打印,但中间用break打断了,循环结束后就不再执行else部分了
i=10
while i>0:
   print(i)
   i-=1
   if i==3:
      break;
else:
   print("i=",i)