<style>
html, body, .ui-content {
background-color: #333;
color: #ddd;
}
body > .ui-infobar {
display: none;
}
.ui-view-area > .ui-infobar {
display: block;
}
.markdown-body h1{
color: #9CCEF2;
}
.markdown-body h2,
.markdown-body h3{
color: #B1D6CA;
}
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
color: #ddd;
}
.markdown-body h1,
.markdown-body h2 {
border-bottom-color: #ffffff69;
}
.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
color: #fff;
}
.markdown-body img {
background-color: transparent;
}
.ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a {
color: white;
border-left: 2px solid white;
}
.expand-toggle:hover,
.expand-toggle:focus,
.back-to-top:hover,
.back-to-top:focus,
.go-to-bottom:hover,
.go-to-bottom:focus {
color: white;
}
.ui-toc-dropdown {
background-color: #333;
}
.ui-toc-label.btn {
background-color: #191919;
color: white;
}
.ui-toc-dropdown .nav>li>a:focus,
.ui-toc-dropdown .nav>li>a:hover {
color: white;
border-left: 1px solid white;
}
.markdown-body blockquote {
color: #bcbcbc;
}
.markdown-body table tr {
background-color: #5f5f5f;
}
.markdown-body table tr:nth-child(2n) {
background-color: #4f4f4f;
}
.markdown-body code,
.markdown-body tt {
color: #eee;
background-color: rgba(230, 230, 230, 0.36);
}
a,
.open-files-container li.selected a {
color: #5EB7E0;
}
</style>
###### tags: `tgirc早修book`
# if else
一條道路上可能會出現分岔,根據條件不同要選擇該往哪邊走。
這種情況下,就會需要使用 if else 這個語法
## 比較運算子
等於 `==`
大於 `>`
小於 `<`
大於等於 `>=`
小於等於 `<=`
不等於 `!=`
## 基本架構
```cpp=
#include <iostream>
using namespace std;
int main(){
if(條件句){
指令;
}
else{
指令;
}
return 0;
}
```
if 後方的括號中要放入一段條件句,像是 `a>10` ,達成這個條件後要執行的事要放在大括號中,而未滿足這個條件就會執行 else 中的指令
但如果只有滿足這個條件的需要做事,可以不用加上 else
## else if
當題目具有多個條件時,只有一個 if 來判斷是不夠的,因此就會用到 <font color="F5F6B6">**else if**</font>
```cpp=
#include <iostream>
using namespace std;
int main(){
if(條件句){
指令;
}
else if(條件句){
指令;
}
else{
指令;
}
return 0;
}
```
只要 if 在第一個,要在後方插入多少個 else if 都沒問題
:::info
若只需執行一條程式碼,後方的 `{}` 可不加,但剛開始練習時建議養成加上 `{}` 的好習慣
`if` 連接 `else if` ,以及 `else if` 連接 `else` 中,都不可在中間加上程式碼,它們都要緊接在後
:::
## 邏輯運算子
邏輯運算子可用於串接多個條件式
且 `&&` -> 兩條件同時成立
或 `||` -> 兩條件其中之一成立
否定 `!` -> 反轉(`!true` 為 `false` , `!false` 為 `true`)
<font color="F5F6B6">**範例 1**</font>
```cpp=
#include <iostream>
using namespace std;
int main(){
int a=3,b=6;
if(a<4 && b%2==0){
cout<<"ouob\n";
}
else{
cout<<"onoq\n";
}
return 0;
}
```


<font color="F5F6B6">**範例 2**</font>
```cpp=
#include <iostream>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
if(!(a%b)){
cout<<"a 可以被 b 整除\n";
}
else{
cout<<"a 不可以被 b 整除\n";
}
return 0;
}
```


當 a 能被 b 整除時,a%b 會等於 0,而被反轉後 0 會變成 1 表示正確(true),因此會執行 if 中的指令
<font color="F5F6B6">**範例 3**</font>
```cpp=
#include <iostream>
using namepsace std;
int main(){
int num,num2;
cin>>num>>num2;
if(num>3 && num<20 || num2%2!=0){
cout<<"ouob\n";
}
else if(num2 >100){
cout<<"num2 is so bigggggg\n";
}
return 0;
}
```


邏輯運算子可以一次使用多個,會先執行 `&&` 再執行 `||`,使用 `()` 就能先執行 `()` 中的指令
除了 if else 之外,三元運算子也可以做到條件判斷
:::info
條件式 ? 符合條件 : 不符合條件
:::
<font color="F5F6B6">**範例 1**</font>
```cpp=
#include <iostream>
using namespace std;
int main(){
int a=3;
cout<<(a%2 == 0 ? "a 是偶數":"a 是奇數")<<"\n";
return 0;
}
```
