C++ [2]
判斷式&迴圈
ZSISC32nd 公關X教學 鄭云晶
鄭云晶
公關兼教學
- 學術力:網頁前端、基礎C++&Python
- 興趣:吉他、睡覺
- 專長:睡覺





來玩遊戲!來吃比薩!

320元/1件
好看!買買買!
課程目錄
條件判斷
if else
條件判斷
如果......就......
否則......



PASS
FAIL
if(判斷式) {
// 當判斷式成立時才執行
}if(判斷式1) {
// 當條件1成立時才執行
}
else if(判斷式2) {
// 當條件2成立時才執行
}
else {
// 當判斷式1、2不成立時執行
}如果
否則如果
否則
#include <iostream>
using namespace std;
int main() {
int score;
cout << "請輸入成績: ";
cin >> score;
if (score >= 60) cout << "及格" <<endl;
else cout << "不及格" <<endl;
return 0;
}- 注意先後順序
- 前一個條件不成立,才會往下個條件確認
- else if 可以有很多個
- 只有一行可以省去大括號
if(判斷式)執行內容;條件式 ? 條件式符合時執行: 條件式不符合時執行三元運算子
int a = 10, b = 20;
int max = (a > b) ? a : b;
cout << max;輸出20
題目練習
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
if (n % 2 == 0) cout << "Even" << endl;
else cout << "Odd" << endl;
return 0;
}
迴圈是什麼?
迴圈(Loop)一種程式結構
「重覆執行程式碼」只要條件滿足,就會執行特定的動作。
簡潔、快速!

迴圈種類
- for
- while
前測試迴圈
後測試迴圈
-
do-while
for 迴圈
cout << "你好啊" << endl;
cout << "你好啊" << endl;
cout << "你好啊" << endl;
cout << "你好啊" << endl;
cout << "你好啊" << endl;你好啊
你好啊
你好啊
你好啊
你好啊
有點麻煩?
for-計數迴圈
for (初始式; 判斷式; 更新式) {
執行內容;
}
for (int i = 0; i < 5; i++) {
cout << i;
}
輸出01234
for (int i = 4; i > 0; i--) {
cout << i;
}
輸出4321
for-計數迴圈
for (int i = 0; i < 5; i++) {
cout << i;
}
for (int i = 4; i > 0; i--) {
cout << i;
}
輸出01234
i < 5 ?
i=0
輸出i
i=i+1
是
否
結束
輸出43210
i <0 ?
i=1
輸出i
i=i-1
是
否
結束
for (int i=0; i< 5; i++){
cout << "你好啊";
}你好啊
你好啊
你好啊
你好啊
你好啊
是不是快速方便很多?
範例
巢狀迴圈
for (初始式; 判斷式; 更新式) {
for (初始式; 判斷式; 更新式) {
// 內層迴圈程式碼
}
// 外層迴圈程式碼
}
- 外層迴圈一次
- 內層迴圈全部執完
- 外層迴圈下一次
- 重複以上
範例c418
一個 n 層的三角形,第 i 層就要有 i 個 " * "
輸出整個三角形~~
輸入5
*
**
***
****
*****
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 0; j < i; j++) {
cout << "*";
}
cout << endl;
}
return 0;
}答案
j=0
j=0,1
j=0,1,2
j=0,1,2,3
j=0,1,2,3,4
*
**
***
****
*****
輸入5
→
→
→
→
→
while 迴圈
while-條件迴圈
while (判斷式){
執行內容
}只要條件符合,就持續執行

Text
#include <iostream>
using namespace std;
int main() {
int number, sum = 0, i = 1;
cout << "請輸入一個正整數:";
cin >> number;
while (i <= number) {
sum += i;
i++;
}
cout << "從 1 加到 " << number << " 的總和是: " << sum << endl;
return 0;
}簡單範例
-
若條件一開始就是 false,迴圈一次都不會執行。
-
如果條件永遠為 true → 會變成 無限迴圈。
while (true){
cout << "喔耶" << endl;
}喔耶
喔耶
喔耶
.
.
.
*for和while互換
int a;
for(a=5; a>0; a--)
{
cout<< a <<endl;
}int a;
a=5;
while(a>0) {
cout<< a <<endl;
a--;
}#西元年被4整除且不被100整除,或被400整除者即為閏年
a004文文的求婚
提示:
#include <iostream>
using namespace std;
int main() {
int year;
while(cin >> year){
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
cout <<"閏年" << endl;
}
else {
cout <<"平年" << endl;
}
}
return 0;
}
或
do-while 迴圈
先執行程式再判斷條件!do {
一般指令;
} while(測試條件) ;
do-while 迴圈
(確保至少執行一次#include <iostream>
using namespace std;
int main() {
int number;
do {
cout << "請輸入一個大於 0 的數字: ";
cin >> number;
} while (number <= 0);
cout << "你輸入的數字是: " << number << endl;
return 0;
}
範例
-
-3 → 迴圈繼續,再次要求輸入。
-
0 → 條件仍成立,繼續輸入。
-
5 → 條件不成立,跳出迴圈,輸出
break/continue
這個迴圈會執行什麼?
int main() {
int n = 3;
while (n < 2) {
cout << "你好" << endl;
}
return 0;
}你好
你好
你好
.
.
.
.
無限迴圈!!!!!
break
立即結束整個迴圈
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break;
}
cout << i << " ";
}1 2
跳過當前迴圈的剩餘部分,直接進入下一圈
continue
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
cout << i << " ";
}
1 2 4 5
Kahoot!
deck
By shiny0515
deck
- 121