###### tags: `sprout`
# while
slide : https://hackmd.io/@i2y3z9dITSa_Q_7V7h-AoA/B1l2D9EBI
--廖凰汝--
---
題目: 印出1~10的數字
----
你可能會...
```cpp=
std::cout<"1";
std::cout<"2";
std::cout<"3";
std::cout<"4";
std::cout<"5";
std::cout<"6";
std::cout<"7";
std::cout<"8";
std::cout<"9";
std::cout<"10";
```
----
題目: 印出1~10000的數字
----
複製貼上到手斷掉
---
In C/C++
```cpp
while (condition) {
do something
}
```
當條件符合(true),就做事情,重複做,直到條件不符合(false)
----
```cpp
while (肚子餓) {
吃東西
}
```
----
<h2>題目: 印出1~10的數字</h2>
<!---
```cpp=
#include <iostream>
int main() {
int i = 1;
while (i<=10) {
std::cout<<i<<std::endl;
i++;
}
return 0;
}
```--->
----

----
<a href="http://www.pythontutor.com/visualize.html#mode=display">一步一步來</a>
----
<h2>題目: 印出5*5的正方形</h2>

----

### 分析一下:
每一列有五顆星星,總共有五列。
<font color="#ef0">印出五顆星星</font>是一個動作,總共要做五次這樣的動作(且每做一次就要換行)
----
所以我們可以寫出
```cpp=
int i = 1;
while (i<=5) {
印出五顆星星;
std::cout<<std::endl;
i++;
}
```
----
那<font color="#aa0">印出五顆星星</font>怎麼寫?
```cpp=
int j = 1;
while (j<=5) {
std::cout<<"*";
j++;
}
```
把以上code 取代到 <font color="#aa0">印出五顆星星</font>
----
Finished!

---
執行看看以下的code
```cpp
#include <iostream>
int main() {
while (1) {
std::cout<<"$";
}
return 0;
}
```
----
滿滿的錢 :+1: :+1:
為什麼會這樣?
----
在while迴圈裡忘記更新值,有可能就會發生無窮迴圈。

----

{"metaMigratedAt":"2023-06-15T05:06:02.641Z","metaMigratedFrom":"Content","title":"while","breaks":true,"contributors":"[{\"id\":\"8b6cb7cf-d748-4d26-bf43-fed5ee1f80a0\",\"add\":1615,\"del\":62}]"}