在前一章節,我們說明了運算子與條件式,這節我們要實際應用所學到的內容在我們的程式中,在我們的判斷式中,時常伴隨著 關係運算子 與 邏輯運算子 。
如果條件式成立,才會執行內部程式敘述,否則會跳過當下if
內部的敘述,我們稱為 雙向選擇結構 ,if
的語法如下:
if (條件式) 敘述;
或
if (條件式) {
敘述1;
敘述2;
/* ... */
}
你覺得單單只有if
可能會不夠嗎?或許該學學如何可以增加否則的敘述,我們稱為 雙向選擇結構,語法如下:
if (條件式) 敘述1;
else 敘述2;
或
if (條件式) {
敘述1;
/* ... */
}
else {
敘述2;
/* ... */
}
我們學道雙向選擇結構後,是否有回想起 條件運算子 ? :
呢?再撰寫程式中,我們有時可以利用 條件運算子 來簡化if-else
的語法的敘述歐。
條件還是不夠多的話我們可以利用else-if
來實現,語法如下:
if (條件式1) {
敘述1;
/* ... */
}
else if (條件式2) {
//不滿足條件式1,滿足條件式2
敘述2;
.......;
}
else {
//都不滿足時...
敘述3;
/* ... */
}
學會上面if
的各種語法後,相信聰明的你會想到可以在if
else
if else
內增加if
吧,這種結構被稱為 巢狀選擇結構 ,範例如下:
if (條件式1) {
if (條件式3) {
//滿足條件式1與條件式3
敘述3;
/* ... */
}
else {
//滿足條件式1,不滿足條件式3
敘述4;
/* ... */
}
}
else if (條件式2) {
//不滿足條件式1,滿足條件式2
敘述2;
/* ... */
}
else {
//不滿足條件式1與條件式2
敘述5;
/* ... */
}
當我今天如果想要在某個變數在特定幾個範圍有不同的敘述結果,會有大量的if
再使用,想必程式碼會又臭又長,這時候我們就要使用switch-case
了,語法如下:
switch (運算式 或 變數) {
case 值1:
敘述1;
break;
case 值2:
敘述2;
break;
case 值3:
敘述3;
break;
default:
敘述;
}
在switch-case
中,你可以利用運算式
的結果 或 變數
的值,分別執行不同的敘述,但變數只可以是 整數int
或 字元char
。
切記,每一個case
敘述結束後要利用break
跳出switch
,否則會程式回繼續往下執行其他的敘述。
如果你case
的值是個範圍 可以利用...
來達成目的,我們舉個例子,今天老師說要程式自動判斷學生成績是否及格,並分別在不同分數輸出不同鼓勵學生的話,用switch
解法如下:
switch (score) {
case 100:
cout << "狠角色,請繼續保持" << endl;
break;
case 80 ... 99:
cout << "很強歐!還不錯" << endl;
break;
case 60 ... 79:
cout << "恭喜及格" << endl;
break;
case 0 ... 59:
cout << "不及格,繼續加油吧" << endl;
break;
default:
cout << "你的分數不是在 0~100之間" << endl;
}
c++的邏輯判斷使用的是短路運算Short Circuit Evaluation
,
代表若前者的條件已經可以決定整個運算式的結果,便不會去判斷後者。
即AND
邏輯只要前者為false
,就直接回傳false
,
而OR
邏輯只要前者為true
,就直接回傳true
,
以上兩者都不會再去判斷後者的真假值,
這帶給使用者很大的便利(可以用這項特性防止許多問題發生)。
二進制 要學習位元運算,必須要先學會二進制的數字表示法, 二進制與我們常用的十進制看起來非常不一樣,但核心概念是相同的。 二進制與十進制 二進制與十進制的「進」代表的是進位,而前面的數字代表的是遇到多少要進位, 十進制是遇到10就進位 看吧!變兩位數了 ,二進制則是遇到2就進位, 所以其實也有八進制、十六進制等不同的進位方式。
Sep 29, 2021變數的名稱 變數名稱的規定並沒有很嚴格,只有以下幾點是需要遵守的: 變數名稱中只能有英文字母、下劃線_ 、美元符號 $ 及數字。 不能使用 c/c++ 的關鍵字作為變數名稱 (e.g. new、float 等)。 不能以數字作為開頭。 一般會建議變數名稱要盡量取得有意義,否則變數變多時程式碼會變得難以閱讀。 以下有幾種潛規則可以遵循:
Sep 27, 2021for迴圈 for-loop 主要是用來處理重複特定「次數」的迴圈 for迴圈的寫法如下: for (初始宣告; 條件式; 迭代器變化量) { /*code here*/ } 要注意,間隔三個敘述是使用分號,不是逗號。
Sep 23, 2021運算式簡介 運算式是由運算子(operand)與運算子(operator)組成的,例如下面的sum與i為運算元,+與=為運算子。 sum = sum + i; 一元運算子(unary operator) 包含 +(正號) 、-(負號) 、++ 、-- 、= 二元運算子(binary operator) 包含 算術運算子 、位元運算子等等
Sep 23, 2021or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up