Skip to content

Commit 9fafcf9

Browse files
committed
finish loop part
1 parent b62ab5f commit 9fafcf9

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

Lesson07/Lesson07.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,48 @@ do {
124124

125125
![dowhile](./dowhile.png)
126126

127+
通过对比**while循环****do-while循环**的流程图,我们可以发现二者的区别:**while**是先判断再执行循环体;而**do-while**是先执行循环体再判断的。也就是说,**do-while循环**的循环体**无论如何一定会执行一遍**
128+
127129

128130

129131
### for
130132

133+
我们直接来看看怎么写**for循环**的代码:
131134

135+
```java
136+
for(expression1; expression2; expression3) {
137+
statements;
138+
...
139+
}
140+
```
141+
142+
- `expression1`:仅在第一次进入for循环时执行一次,一般用于做**初始化**操作
143+
- `expression2`:一个布尔值(可以理解为一个事件)。若为真,则继续循环;若为假,则跳出循环
144+
- `expression3`:每次执行循环体之后都会执行,一般用于做**变量更新**操作
145+
- `statements`:循环体,当`expression2`成立时则会执行
132146

133147
![for](./for.png)
134148

135149

136150

151+
### break和continue
152+
153+
在循环过程中,有时我们想要**直接结束这个循环**,这个时候可以用到`break`语句。
154+
155+
而有时我们想要**直接结束当前迭代循环体,进入下一次迭代**,这个时候可以用到`continue`语句。注意在for循环中,即使使用了`continue`语句,上面所说的`expression3`依然会执行。
156+
157+
158+
159+
### 对比
160+
161+
刚刚展示了三种循环结构,其实这三种循环结构直接都可以相互转换,但是为了方便和优雅,我们会按照他们各自的特性来使用他们:
162+
163+
1. **while循环**:相比于do-while循环,用于循环体可以一次都不执行的情况;相比于for循环,用于初始化或更新变量较复杂的情况,一般已知一个跳出条件
164+
2. **do-while循环**:相比于while循环,用于循环体一定要执行一次的情况
165+
3. **for循环**:常见用于已知循环次数的循环(此时我们会用**i或j**等变量计数),用于初始化或更新变量较简单的情况,因此非常适合用于数组的遍历
166+
167+
168+
137169
### 练习
138170

139171
1. 猜数游戏

0 commit comments

Comments
 (0)