還記得開始寫android的時候,因為不熟悉程式碼,看到這4個指令:
for、while、if、switch
的時候總是被這4種看似判斷又像迴圈的指令搞混(特別是if和while)。
的時候總是被這4種看似判斷又像迴圈的指令搞混(特別是if和while)。
到底何種時候用那種比較合適呢,其實看個人習慣,不過這四種指令
迴圈代表它會一直重覆動作,並不會跳出來或自動終止(除非已不符合它
迴圈的條件),所以在用迴圈時,一定要特別注意它的判斷條件,否則很
容易造成無窮迴圈的形成~
這四種指令我們可以分成兩類,一類是單純的判斷(if、switch),另一類就
是迴圈(for、while),這裡先從容易理解的開始說起
1、switch(判斷式)
基本上它是尋找符合的條件才跳進去
舉例來說:
switch(a) //
尋找a這個參數符合的條件
{
case 1: //a=1的動作
break;//中斷
case 2://a=2的動作
break;
case 3://a=3的動作
break;
default://預設的動作
break;
}
由上面這個範例我們可以看出,尋找a=1,a=2,a=3及不符合
這些條件(default)時的動作,每個條件做完之後,我們都要再加上break(才會跳出switch,不然只會浪費資源往下繼續找其他符合的條
件,當然大多已不符合了),而我們用break的好處是我們只用switch
來做一次尋找並判斷,當找到我們要的之後,就可以跳開switch,繼
續往下一個動作去執行。
這些條件(default)時的動作,每個條件做完之後,我們都要再加上break(才會跳出switch,不然只會浪費資源往下繼續找其他符合的條
件,當然大多已不符合了),而我們用break的好處是我們只用switch
來做一次尋找並判斷,當找到我們要的之後,就可以跳開switch,繼
續往下一個動作去執行。
另外,我們用的參數是要以整數(int)來放,字串(string)不行放入switch。
2、for(有條件的迴圈)
for(初始變數;判斷式;遞增式)
舉例:
for(int i=0;i<3;i++)//給定初始整數i=0,當小於3時則開始這區塊內的動作
//當i=3的時候就停止
//當i=3的時候就停止
{
要執行的動作
}
以這個例子來看,它的動作會作3次(因為i從0、1、2)到i=3的時候,它就停了
3、if(判斷式)
舉例來說:
int i=0;
if(i<3)
{
i++;
}
這個結果會出現i=1(因為i=0,然後因為i++, i加了一次變成1)
請注意:這個過程你會覺得跟for的範例幾乎一樣,但結果就是不同!!
請注意:這個過程你會覺得跟for的範例幾乎一樣,但結果就是不同!!
4、while(迴圈)
跟上面的if用同樣的例子來比較
舉例:
i=0;
while(i<3)
{
i++;
}
這個結果會出現i=3(因為i=0,然後i++,一直加到i=3,迴圈共走3次)
請注意:這裡的範例跟for很像,也是迴圈,但是~它們出現的結果不太一樣
請注意:這裡的範例跟for很像,也是迴圈,但是~它們出現的結果不太一樣
如果你將i的結果show出來:
for :i=2(由0、1、2)
if :i=1(只加1次)
while :i=3(由1、2、3)
上面四種指令是常容易搞混的,因為很多時候它們是通用的(寫法不一樣
而已),所以在使用時先想清楚,要做判斷還是要做迴圈,這樣子在用時比
較不會出錯~
而已),所以在使用時先想清楚,要做判斷還是要做迴圈,這樣子在用時比
較不會出錯~
網誌管理員已經移除這則留言。
回覆刪除作者已經移除這則留言。
刪除清楚好懂 感謝大大
回覆刪除此訊息已遭封鎖
回覆刪除yo
回覆刪除