切換
舊版
前往
大廳
主題

資策會Unity課程「C#」Day1~3 Part2

冰劍士-冰雪飛 | 2014-10-21 15:23:01 | 巴幣 2 | 人氣 2342

一樣,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 初始值為0i 是否小於10是的話執行回圈內程式,並之後 i++
直到 i 並不小於10時,此迴圈結束

所以我們寫的語法就像這樣
for( 變數初始值 ; 變數判別式 ; 變數遞增 or 遞減 )
{
程式碼
}

順帶一提,我們在for迴圈所設定的值無法在迴圈外使用,這點請特別注意
=====================================================================
break 和 continue 敘述

有時候我們會刻意在某些情況直接回到開頭執行或直接離開
執行時碰到 continue,會直接回到迴圈開頭,但裡面執行過的數值不變
執行時碰到 break,會直接跳離並結束迴圈
=====================================================================
這三天的課程大致上就到這裡,其實還有一個迴圈不過比較適合用在陣列

所以打算在學好陣列後再放上來說明

盡可能講解,有那裡錯誤或疑問歡迎留言

創作回應

史ㄈㄓ
不明覺厲~
2014-10-21 16:38:49
望月悠
for很多人愛用~
可是偏偏我都不習慣XD
還是用單純的While~

另外說一下
switch裡面的case也可以用goto 跳過去

像是
switch(X){
case 1:
i=5;
goto case 2;
case 2:
i=10;
break;
}

當X=1的時候i最後輸出會變成10~
2014-10-22 10:46:23
冰劍士-冰雪飛
基本上使用for或while還是看情況做選擇,不過大部分來講都是以for為主
2014-10-22 15:35:46

更多創作