當我們要判斷事情的是非時,條件判斷的概念就產生了。
想像情況: 當身上有超過1000塊錢時,可以買大禮物,當身上只有100塊錢時只能買小禮物,當身上一毛錢都沒有時,就不能買禮物,因此在程式中,我們可以使用條件判斷來協助我們。
C++ 條件判斷種類: if、else、else if、switch case
if(條件) { // 當條件成立時才執行 }
PS: 當 if 下的程式碼只有一行時,可不用大括號 { } 將程式碼包起來
範例輸出:
i 大於 4
/* Programming By Linwebs */
#include<iostream>
using namespace std;
int main() {
int i = 5;
if(i > 4) {
// 當條件成立時才執行
cout << "i 大於 4"; // 輸出 i 大於 4
}
return 0;
}
if(條件) {
// 當條件成立時才執行
} else {
// 當上方if中的條件不成立時才執行
}
PS: 當有 if 時,才會有 else ,也就是說 else 不會單獨存在
範例輸出:
i 等於或小於 4
/* Programming By Linwebs */
#include<iostream>
using namespace std;
int main() {
int i = 3;
if(i > 4) {
// 當條件成立時才執行
cout << "i 大於 4"; // 輸出 i 大於 4
} else {
// 當上方if中的條件不成立時才執行
cout << "i 等於或小於 4"; // 輸出 i 等於或小於 4
}
return 0;
}
if(條件1) {
// 當條件1成立時才執行
} else if(條件2) {
// 當上方的條件1不成立
// 且當條件2成立時才執行
} else if(條件3) {
// 當上方的條件都不成立
// 且當條件3成立時才執行
} else {
// 當上方所有if和else if的條件都不成立時才執行
}
PS:
當有 if 時,才會有 else if ,也就是說 else if 不會單獨存在
else if 可以有無限多個,看程式需求
else if 下方不一定會有 else,也就是說 else 可有可無,看程式需求
範例輸出:
i 等於 4
/* Programming By Linwebs */
#include<iostream>
using namespace std;
int main() {
int i = 4;
if(i > 4) {
// 當條件1成立時才執行
cout << "i 大於 4"; // 輸出 i 大於 4
} else if(i == 4) {
// 當上方的條件1不成立
// 且當條件2成立時才執行
cout << "i 等於 4"; // 輸出 i 等於 4
} else {
// 當上方所有if和else if的條件都不成立時才執行
cout << "i 小於 4"; // 輸出 i 小於 4
}
return 0;
}
switch(值/變數) {
case 值:
// 當 switch 後方括號中的值等於 case 後方的值時才執行
// 執行完 case 後的程式碼須 break 否則會繼續往下執行
break;
default:
// 當上方所有 case 都執行完後,才執行,也就是說可能當上方的 case 條件都不成立時,才會執行到 default 內的程式碼
// default 的程式碼執行完後,可不加 break 因 switch 括號內已無條件可判斷
break;
}
PS: 當許多條件都須執行相同程式碼時,可放入多個 case,例如判斷月份的天數
範例輸出:
有 28 或 29 天
/* Programming By Linwebs */
#include<iostream>
using namespace std;
int main() {
int month = 2;
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
// 當 switch 後方括號中的值等於 case 後方其中1個的值時才執行
// 執行完 case 後的程式碼須 break 否則會繼續往下執行
cout << "有 31 天";
break;
case 4:
case 6:
case 9:
case 11:
// 當 switch 後方括號中的值等於 case 後方其中1個的值時才執行
// 執行完 case 後的程式碼須 break 否則會繼續往下執行
cout << "有 31 天";
break;
default:
// 當上方所有 case 都執行完後,才執行,也就是說可能當上方的 case 條件都不成立時,才會執行到 default 內的程式碼
// default 的程式碼執行完後,可不加 break 因 switch 括號內已無條件可判斷
// 此範例若執行至此行,代表 month 為 2
cout << "有 28 或 29 天";
break;
}
return 0;
}