迴圈、邏輯語句塊 好久不寫博客了,斷更了好幾天了,從上周五到今天,從北京到上海,跨越了1213.0公裡,從一個熟悉的城市到陌生的城市,還好本人適應力比較好,還有感謝小伙伴的接風咯,一切都不是事,好了,進入正題: 本篇還是.NET 基礎部分咯,主要簡述迴圈,判斷: 迴圈: for迴圈 語法: for( ...
迴圈、邏輯語句塊
好久不寫博客了,斷更了好幾天了,從上周五到今天,從北京到上海,跨越了1213.0公裡,從一個熟悉的城市到陌生的城市,還好本人適應力比較好,還有感謝小伙伴的接風咯,一切都不是事,好了,進入正題:
本篇還是.NET 基礎部分咯,主要簡述迴圈,判斷:
迴圈:
for迴圈
語法:
for(表達式1;表達式2;表達式3)
{
迴圈體;
}
表達式1一般為聲明迴圈變數,記錄迴圈的次數(int i=0;)
表達式2一般為迴圈條件(i<10)
表達式3一般為改變迴圈條件的代碼,使迴圈條件終有一天不再成立(i++)。
執行過程:程式首先執行表達式1,聲明瞭一個迴圈變數用來記錄迴圈的次數,
然後執行表達式2,判斷迴圈條件是否成立,如果表達式2返回的結果為true,
則執行迴圈體。當執行完迴圈體後,執行表達式3,然後執行表達式2繼續判斷迴圈條件是否成立,如果成立則繼續執行迴圈體,如果不成立,則跳出for迴圈。
案例:
註:如案例中的“水仙花數” 不懂自行百度。
foreach迴圈:
語法:
foreach(數據類型 標識符 in 表達式)
{
迴圈體
}
foreach (type identifier in expression)
{
Statement
}
其中:
type
identifier 的類型。
identifier
表示集合元素的迭代變數。如果迭代變數為值類型,則無法修改的只讀變數也是有效的。
expression
對象集合或數組表達式。集合元素的類型必須可以轉換為 identifier 類型。請不要使用計算為 null 的表達式。
而應計算為實現 IEnumerable 的類型或聲明 GetEnumerator 方法的類型。在後一種情況中,GetEnumerator 應該要麼返回實現 IEnumerator 的類型,要麼聲明 IEnumerator 中定義的所有方法。
statement
要執行的嵌入語句。
案例:
註:案例中是聲明一個int類型的數組。以後的篇章中會講述到數組、集合。
while迴圈:
語法:
while(迴圈條件)
{
迴圈體;
}
執行過程:程式運行到while處,首先判斷while所帶的小括弧內的迴圈條件是否成立,
如果成立的話,也就是返回一個true,則執行迴圈體,執行完一遍迴圈體後,再次回到
迴圈條件進行判斷,如果依然成立,則繼續執行迴圈體,如果不成立,則跳出while迴圈。
在while迴圈當中,一般總會有那麼一行代碼,能夠改變迴圈條件,使之終有一天不再成立,
如果沒有那麼一行代碼能夠改變迴圈條件,也就是迴圈條件永遠都成立,我們稱之這種迴圈
叫做死迴圈。
最簡單的最常用的死迴圈:
while(true)
{
}
特點:先判斷,再執行,有可能一遍迴圈都不執行。
案例:
do-while迴圈
語法:
do
{
迴圈體;
}while(迴圈條件);
執行過程:程式首先會執行do中的迴圈體,執行完成後,去判斷do-while迴圈的迴圈條件,
如果成立,則繼續執行do中的迴圈體,如果不成立,則跳出do-while迴圈。
特點:先迴圈,再判斷,最少執行一遍迴圈體。
案例:
嵌套迴圈:外層迴圈用來控制輸出的行數,內層迴圈用來控制輸出的列數
for(表達式1;表達式2;表達式3)
{
for(表達式1;表達式2;表達式3)
{
迴圈體;
}
}
例如99乘法表:
邏輯語句塊:
if語句:
語法:
if(判斷條件)
{
要執行的代碼;
}
判斷條件:一般為關係表達式或者bool類型的值。
執行過程:程式運行到if處,首先判斷if所帶的小括弧中的判斷條件,
如果條件成立,也就是返回true,則執行if所帶的大括弧中的代碼,
如果判斷條件不成立,也就是返回一個false。則跳過if結構,繼續向下執行。
if結構的特點:先判斷,再執行
案例:
if-else
語法:
if(判斷條件)
{
執行的代碼;
}
else
{
執行的代碼
}
執行過程:程式執行到if處,首先判斷if所帶的小括弧中的判斷條件是否成立,
如果成立,也就是返回一個true,則執行if所帶的大括弧中的代碼,
執行完成後,跳出if-else結構。
如果if所帶的小括弧中的判斷條件不成立,也就是返回一個false,
則跳過if語句,執行else所帶的大括弧中的語句,執行完成後,跳出if-else結構。
if-else特點:先判斷,再執行,最少都要執行一條代碼。
用於兩種情況的判斷
註意:else永遠跟離它最近的那個if配對
案例:
if else-if
作用:用來處理多條件的區間性的判斷。
語法:
if(判斷條件)
{
要執行的代碼;
}
else if(判斷條件)
{
要執行的代碼;
}
else if(判斷條件)
{
要執行的代碼;
}
else if(判斷條件)
{
要執行的代碼;
}
........
else
{
要執行的代碼;
}
執行過程;程式首先判斷第一個if所帶的小括弧中的判斷條件,如果條件成立,也就是返回一個true,
則執行該if所帶的大括弧中的代碼,執行完成後,立即跳出if else-if結構。
如果第一個if所帶的判斷條件不成立,也就是返回一個false,則繼續向下進行判斷,依次的判斷每一個if所帶
的判斷條件,如果成立,就執行該if所帶的大括弧中的代碼,如果不成立,則繼續向下判斷,
如果每個if所帶的判斷條件都不成立,就看當前這個if else-if結構中是否存在else。
如果有else的話,則執行else中所帶的代碼,如果沒有else,則整個 if-else if神馬都不做。
else可以省略。
案例:
根據上邊你就是會看出if else-if 在條件特別多的時候會導致代碼很長很不好看,這時我們會用另一個來替換:
switch-case
用來處理多條件的定值的判斷。
語法:
switch(變數或者表達式的值)
{
case 值1:要執行的代碼;
break;
case 值2:要執行的代碼;
break;
case 值3:要執行的代碼;
break;
..........
default:要執行的代碼;
break;
}
執行過程:程式執行到switch處,首先將括弧中變數或者表達式的值計算出來,
然後拿著這個值依次跟每個case後面所帶的值進行匹配,一旦匹配成功,則執行
該case所帶的代碼,執行完成後,遇到break。跳出switch-case結構。
如果,跟每個case所帶的值都不匹配。就看當前這個switch-case結構中是否存在
default,如果有default,則執行default中的語句,如果沒有default,則該switch-case結構
什麼都不做。
案例:
最後來個彩蛋:
break ,continue ,return 的區別及作用:
第一:break語句通常用在迴圈語句和開關語句中,當break語句用於do-while、for、while迴圈語句中時,可使程式終止迴圈而執行迴圈後面的語句, 通常break語句總是與if語句聯在一起,即滿足條件時便跳出迴圈。例如:註意:
1) break語句對if-else的條件語句不起作用。
2) 在多層迴圈中, 一個break語句只向外跳一層。
第二:continue語句的作用是跳過迴圈本中剩餘的語句而強行執行下一次迴圈。continue語句只用在for、while、do-while等迴圈體中,常與if條件語句一起使用,用來加速迴圈。其實就是continue跳過一次迴圈以及後面的語句,進行下次迴圈。
第三: return語句是將函數的值返回主調函數。例如:
return 語句的一般形式為:
return 表達式
或者為:
return (表達式)
好了 , 本篇就到這裡了,另本篇提供的案例只有截圖,沒有運行的結果,請自行處理咯。希望能對初學者帶來幫助,更希望大神能帶帶我們,帶我們裝逼,帶我們飛。。。
最後打個小廣告:QQ群: .NET 一步步一幕幕 群號:590170361 (加群備註:博客園看到的)