一樣,10/14、16、17日三天的課程心得的Part2
這次要講的是條件敘述和迴圈的部分,從這邊開始程式會變得比較複雜些
盡量把這裡講的完整些,不過也可能寫得不怎麼清楚就是了
=====================================================================
在講解今天主要的部份前,先來了解下敘述區段
如圖所視,一個敘述區段會以一個大括號{ }來做為表示
左圖是錯誤的寫法,因為區段內的變數名稱宣告不能與上一層的區段同名
要同名的話必須向右圖這樣把區段分開來做處理,不過不建議這樣做就是了(很容易搞混)
=====================================================================
if-else 條件敘述
圖片是個簡單的 if else 的範例
if(運算式)
{
程式碼
}
假設括號內的運算式是 true,就執行 if 區段內的程式碼
else if(運算式)
{
程式碼
}
跟 if 很像,這是串聯式條件,對於 if 為 false 時,又 else if 為 true,就執行else if 區段的程式碼
else
{
程式碼
}
else 後不必寫運算式,這是指以上的條件敘述都為 false 時,就執行 else 區段的程式碼
會有點看不懂嗎?我試著把它翻成中文化
假設變數為人
假使人為男性,就會有甚麼樣的特徵(if)
人不是男性,但假使人為女性,就會有甚麼樣的特徵(else if)
而人以上都不是的條件,就會有甚麼樣的特徵(else)
這樣應該看得懂吧?(不過這例子好像哪裡怪怪的......)
=====================================================================
switch 條件敘述
圖片是個簡單的 switch 的範例,第2行的程式碼是隨機產生任一個1~3的整數
switch(變數名稱)
{
case 變數內值:
程式碼;break;
default:
程式碼;break;
}
switch 的括號內填你要判斷的變數名稱
case xxx: 填好變數內可能的值,之後寫好要執行的程式碼,並在最後補上break;,跳出 switch
default: 就像是 if 敘述中的 else,以上皆非的情況下執行,一樣最後補上break;
當case的兩個情況都執行一樣的程式碼時,可以直接像圖中寫法一樣
case之後再接一個case,這樣就可以減少不必要的程式碼
=====================================================================
goto 敘述
當程式碼碰到 goto 時,程式會直接跳到 goto 後面撰寫的標籤名稱
基本上寫成是盡量不要使用,容易造成程式上的混亂
=====================================================================
while 迴圈
基本 while 迴圈範例,迴圈的使用是在於你要重複執行否些程式時派得上用場
while 括弧內為判別式,假如是 true ,執行迴圈內的程式
請注意一點,假如你沒像圖中在迴圈內程式補上變數的遞增(或遞減)
這個迴圈會變成無窮迴圈,也就是無線執行此迴圈的程式,造成電腦當機
所以基本上我們比較常用的是 for 迴圈,不易寫成無窮迴圈
=====================================================================
do-while 迴圈
寫法跟 while 迴圈很像,不過一定會事先執行一次 do 內敘述的程式
=====================================================================
for 迴圈
基本 for 迴圈範例
for 迴圈流程圖
如圖中所示 i 初始值為0,i 是否小於10,是的話執行回圈內程式,並之後 i++
直到 i 並不小於10時,此迴圈結束
所以我們寫的語法就像這樣
for( 變數初始值 ; 變數判別式 ; 變數遞增 or 遞減 )
{
程式碼
}
順帶一提,我們在for迴圈所設定的值無法在迴圈外使用,這點請特別注意
=====================================================================
break 和 continue 敘述
有時候我們會刻意在某些情況直接回到開頭執行或直接離開
當執行時碰到 continue,會直接回到迴圈開頭,但裡面執行過的數值不變
當執行時碰到 break,會直接跳離並結束迴圈
=====================================================================
這三天的課程大致上就到這裡,其實還有一個迴圈不過比較適合用在陣列
所以打算在學好陣列後再放上來說明
盡可能講解,有那裡錯誤或疑問歡迎留言