## 八.else
---
循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码.
### 8.1while...else
---
需求:女朋友生气了,要惩罚:连续说5遍媳妇我错了,如果道歉正常完毕女朋友就原谅我了,这个程序该怎么写?
```python
i = 1
while i <= 5:
print('媳妇我错了')
i += 1
print('媳妇原谅我了')
```
- 思考:这个print是不是没有循环也能执行?
### 8.1.1 语法
```python
while 条件:
条件成立重复执行的代码
else:
循环正常结束之后执行的代码
```
```python
i = 1
while i <= 5:
print('媳妇我错了')
i += 1
else:
print('媳妇原谅我了')
```
### 8..1.3 退出循环的方式
---
需求:女朋友生气了,要求道歉五遍,媳妇我错.道歉五遍的时候,媳妇埋怨这一遍不真诚,是不是就要退出循环了?这个退出有两种可能性:
- 更生气,不打算原谅,也不需要道歉了,程序如何书写?
- 只一遍不真诚,可以忍受,继续下一遍道歉,程序如何书写?
1.break
```python
i = 1
while i <= 5:
if i == 3:
print('这遍说的不真诚')
break
print('媳妇我错了')
i += 1
else:
print('媳妇原谅我了')
```
- 所谓的else指的是循环正常结束以后要执行的代码,即如果是break终止循环的情况,else下方缩进的代码将不执行
2.continue
```python
i = 1
while i <= 5:
if i == 3:
print('这遍说的不真诚')
continue
print('媳妇我错了')
i += 1
else:
print('媳妇原谅我了')
```
- 因为continue是退出当前的一次循环,继续下一次循环,所以该循环在continue控制下是可以正常结束的,当循环结束后,则执行了else缩进的代码。
### 8.2 for...else
---
8.2.1 语法
```python
for 临时变量 in 序列:
重复执行代码
...
else:
循环正常结束之后要执行的代码
```
- 所谓else值得是循环正常结束之后要执行的代码,即如果是break终止循环的情况,else下方缩进的代码将不执行。
8.2.2示例
```python
str1 = 'forxunhuan'
for i in str1:
print(i)
else:
print('循环正常结束之后执行的代码')
```
- 因为continue是退出当前一次循环,继而进行下一次循环,所以循环在continue控制下是可以正常结束的,当循环结束以后,则执行else缩进的代码