---
# System prepended metadata

title: 迴圈

---

# 迴圈
C++裡面有兩種迴圈可以使用 — **while** 和 **for**

## while
```
    while(條件敘述....)
    {
        執行程式
    }
```
當條件符合 ==> 執行程式 ==> 檢查條件
==> 當條件符合 ==> 執行......
....
...
如果條件不符合，就會跳過往下執行，我想用法並不會太困難。

例題
---
>[a004: 文文的求婚](https://zerojudge.tw/ShowProblem?problemid=a004 "點選看題目")
```cpp=
#include <iostream>
using namespace std;
main()
{
	int a;
	while(cin>>a)
		if(a%4 ==0 && a%100!=0) 
			cout<<"閏年"<<endl;
		else if (a%400 == 0)	
			cout<<"閏年"<<endl;
		else 
			cout<<"平年"<<endl;
 }
```
閏年的條件：是 4 的倍數，不是 100 的倍數，但又是 400 的倍數
當輸入 a 後，會執行裡面的程式，一直到 EOF
>[e621: 1. 免費停車 (Free Parking)](https://zerojudge.tw/ShowProblem?problemid=e621 "點選看題目")

## for

```
for(變數初始值;條件;變數 )
```
```cpp=
#include <iostream>
using namespace std;
main()
{
	int n, a, b, c;
	bool check = 0;
	cin>>n;
	for(int i = 1;i<=n;i++)
	{
		cin>>a>>b>>c;
		for(int j = a + 1;j<b;j++)
		{
			if(j%c!=0)
			{
				cout<<j<<" ";
				check = 1;
			}
		}
		if(check == 0)	cout<<"No free parking spaces.";
		cout<<endl;
		check = 0;
	}
}
```