今天总结了一下break,continue,return和yield的用法和区别,避免在写程序时容易混淆的问题。
break和continue是循环控制语句,经常用在for和while循环当中,
从结束循环的层次上说:
continue只结束本层循环的这一次循环,返回到下一次循环的起始位置,对本层循环没有影响,本层循环还在继续执行。
break语句会结束本层循环,使得本层循环终止,不再执行下去。要结束多层循环就需要每层循环都要添加break语句。
return和yield语句经常用在函数或方法中,用于向外部传递参数,在函数的外面是不能使用的,所以在应用他们的时候都是在函数内部。他们之间的区别:
return语句是返回一个函数执行的结果,当函数执行到return语句时,就结束这个函数,向外部返回return后面的值,就是说在return外面有多少层循环都会停止,整个函数都不再运行,而在函数中的break语句就还是只能一层层的结束循环。
yield语句相当于多次return,有yield语句的函数可以看做是一个生成器,yield语句返回的是一个可迭代的对象,只有一个地址信息,要想获得结果,需要遍历这个函数返回值,依次取出执行结果。函数会停留在yield语句所在的层级,保留返回值为下一次调用做准备,函数会执行完yield语句所在的这一次循环后停留在下一次