c#語言中各種迴圈的優缺點
從學習c#
基礎的那天起,我們就開始陸續接觸各種迴圈語句,比如:
if else
迴圈、if-else if
迴圈、while
迴圈、do-while
迴圈、switch-case
迴圈和for
迴圈等等。由於種類繁多,導致對各種迴圈理解不深,使用起來也猶豫不定。今天我就介紹一下每一種的優勢與缺點,好讓大家在以後的使用中得心應手。
1、if else迴圈
語法:if(條件)
else
如果條件為true ,
則執行if
下的語句塊
1,跳過語句塊
2;如果條件為
false
,則執行
else
下語句塊2.
例項:static void main(string args)
string username = "admin";
string password = "888888";
if (username == "admin" && password == "888888")
console.writeline("登入成功!");
else
console.writeline("登入失敗");
console.readkey();
優勢:if else
適合用於邏輯判斷簡單,迴圈次數較少的程式中。
缺點:用於邏輯複雜的程式中,則比較麻煩,介面凌亂。
2、if -else if
語法:在if-else if
語句中,只有當上乙個條件不成立時,才會執行
else if
語句並判斷,如果結果為
true
,則執行
else if
所帶的語句塊,執行完成後,則跳出迴圈。如果所有的
else if
都不成立,則執行最後面的
else
語句塊,如果沒有則什麼都不執行。
例項:輸入直轄市**,判斷您住在哪乙個市?
static void main(string args)
//請用**輸入你所在在直轄市(北京-b,天津—t,上海-s,重慶-c)
console.writeline("請問您生活在哪乙個直轄市?");
string input = console.readline();
if (input=="b")
console.writeline("您生活在北京!");
else if (input=="t")
console.writeline("您生活在天津!");
else if (input =="s")
console.writeline("您生活在上海!");
else if (input =="c")
console.writeline("您生活在重慶!");
else
console.writeline("您生活在月球!");
console.readkey();
優勢:適用於多重判斷迴圈以及範圍內比較
缺點:如果迴圈太多太精確的話,則不可用。
3、while迴圈
語法:while(條件)
迴圈體先判斷條件是否成立,如果成立,則執行迴圈體,如果不成立,則跳出迴圈。程式結束。
例項:列印10遍」這篇課文我已經抄了n遍了「
static void main(string args)
int i = 0;
while(i<10)
console.writeline("《背影》這篇課文我已經抄了第遍了!",i+1);
i++;
console.readkey();
優勢:適用於先判斷,再執行的程式中。
缺點:侷限性很大
4、do-while迴圈
語法:do
迴圈體while(條件);
先執行迴圈體一次,然後判斷while條件是否成立,如成立,則繼續執行迴圈體,如不成立,則跳出迴圈。程式結束。
例項:程式設計實現小蘭先表演一遍舞蹈後問老師滿意嗎?如不滿意,則繼續表演;如滿意,則停止表演。
static void main(string args)
string answer = "y";
doconsole.writeline("小蘭表演了一遍舞蹈!");
console.writeline("老師,你滿意嗎?y/n");
answer = console.readline();
}while(answer=="n");
console.writeline("表演的不錯,可以回去休息了!");
console.readkey();
優勢:一般用於先執行,再判斷的程式中
缺點:侷限性很大
5、switch-case迴圈
語法:switch(表示式)
case值1;語句塊1;
break;
case值2;語句塊2;
brea;
例項:輸入乙個年份和月份,判斷這個月份的天數?
static void main(string args)
console.writeline("請輸入年份?");
int year = convert.toint32(console.readline());
console.writeline("請輸入月份?");
int month = convert.toint32(console.readline());
switch (month)
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.writeline("31天");
break;
case 2:
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
console.writeline("29天!"); //閏年
else
console.writeline("28天!");//不是閏年
break;
default:
console.writeline("30天");
break;
console.readkey();
優勢:一般只能用於等值比較
缺點:處理範圍較小,還容易混亂
6、for迴圈
語法:for(表示式1;表示式2;表示式3)
迴圈體;
例項:寫乙個九九乘法表(三角形)
for (int i = 1; i < 10; i++)
for (int j = 1; j <=i; j++)
console.write("*=\t", i, j, i * j);//"\t"是對齊的作用
console.writeline();//換行的作用
console.readkey();
優勢:一般用於已知迴圈次數的程式中和比較複雜的迴圈程式中。
缺點:不適用處理判斷範圍的程式
本人才學淺薄,整理錯誤之處,還望指出,謝謝!
黑馬程式設計師 C語言 迴圈結構 for迴圈
for 語句1 條件 語句2 語句1 初始化語句 語句2 增量語句 執行完迴圈體後再執行的語句 1.for一開始就會執行一次語句1 整個for迴圈只會執行一次 2.判斷條件是否成立,如果條件成立,就會執行一次迴圈體,然後就會執行語句2,再次判斷條件是否成立 不要隨便在for 後面寫分號 for in...
黑馬程式設計師 c語言中的排序演算法
1.冒泡演算法 include stdio.h void main n 10 for i 0 i for j 0 j if a j a j 1 當後面的值比前面的值小時,兩個值互換 for i 0 i printf d a i 2.選擇排序法 include define n 20 定義n 20 v...
黑馬程式設計師 C語言中的指標 4
使用字串指標變數與字元陣列的區別 用字元陣列和字元指標變數都可實現字串的儲存和運算。但是兩者是有區別的。在使用時應注意以下幾個問題 1.字串指標變數本身是乙個變數,用於存放字串的首位址。而字串本身是存放在以該首位址為首的一塊連續的記憶體空間中並以 0 作為串的結束。字元陣列是由於若干個陣列元素組成的...