App下載

C# 編程語(yǔ)言學(xué)習(xí)系列(六)

我的夏天來(lái)了 2021-12-13 14:54:51 瀏覽數(shù) (3009)
反饋

有些游戲之中會(huì)有掛機(jī),在掛機(jī)的期間,由系統(tǒng)自動(dòng)操控角色重復(fù)完成玩家指定的內(nèi)容。例如挖礦,系統(tǒng)就會(huì)一直重復(fù)發(fā)現(xiàn)礦,挖礦,沒(méi)有礦,停止挖礦這一系類操作。關(guān)于循環(huán)和重復(fù),今天就來(lái)學(xué)習(xí)一下 C# 語(yǔ)言中的循環(huán)語(yǔ)句。

一、while 循環(huán)

首先給出while 循環(huán)的語(yǔ)法格式:

while(condition){
    statements;
}

只要 condition 的值判定為 true,那么程序就會(huì)自動(dòng)重復(fù)執(zhí)行 while 里面的語(yǔ)句;當(dāng) condition 的值判定為 false,那么 while 就會(huì)停止循環(huán),直接執(zhí)行 while 之后的語(yǔ)句。

int count = 0;
int num = 0;
while(num <= 5){
    count += num;
    num += 1;
}
Console.WriteLine(count); // 15

二、for/foreach 循環(huán)

1、 for 循環(huán)

格式:

for(init; condition; increment){
    statements;
}

for 循環(huán)后面的括號(hào)里面,需要定義三個(gè)內(nèi)容。

  • init - 在循環(huán)開(kāi)始后,第一個(gè)執(zhí)行的內(nèi)容,而且執(zhí)行一次。這一步可以聲明并初始化任何循環(huán)控制變量,也可以不在這里寫(xiě)任何語(yǔ)句,但必須要有分號(hào)。
  • condition - 循環(huán)的判定條件。如果判定結(jié)果為 true,則執(zhí)行下面的 statements;否則,就結(jié)束了循環(huán),執(zhí)行循環(huán)體的下一個(gè)語(yǔ)句。
  • increment - 當(dāng)執(zhí)行完 for 循環(huán)主體后,控制流會(huì)回到 increment 語(yǔ)句并執(zhí)行。該語(yǔ)句也可以留空,只需要在條件部分的后面留下分號(hào)即可。

示例:

for(int i=0;i<5;i++){
    Console.WriteLine(i);
}
/*
0
1
2
3
4
*/

2、foreach 循環(huán)

C# 是支持 foreach 循環(huán)語(yǔ)句的編程語(yǔ)言。foreach 循環(huán)可以用來(lái)迭代一個(gè)數(shù)組或者一個(gè)集合對(duì)象。例如:

int[] arr={1, 2, 3, 4, 5};
foreach(int elm in arr){
    Console.WriteLine(elm);
}
/*
1
2
3
4
5
*/


// 類似于
for(int n=0;n<arr.Length;i++){
    Console.WriteLine(arr[i]);
}

相比兩者,顯然用來(lái)迭代數(shù)組或者集合對(duì)象而言,foreach 循環(huán)實(shí)現(xiàn)更為方便;而 for 循環(huán)相對(duì)來(lái)說(shuō),理解起來(lái)比較簡(jiǎn)單。至于怎么用,就看個(gè)人習(xí)慣和愛(ài)好了。

三、do...while 循環(huán)

格式:

do{
    statements;
}while(condition);

do..whilewhile 語(yǔ)句有一些相似,但也有些不同。不同在于,while 只要不滿足條件,那么循環(huán)體內(nèi)的語(yǔ)句一次都不會(huì)執(zhí)行;而 do...whle 語(yǔ)句是無(wú)論你條件滿不滿足,都至少會(huì)執(zhí)行一次的。

int num = 10;
do{
    num -= 1;
    Console.WriteLine(num);
}while(num > 10);
// 9

從上面的程序來(lái)看,10是永遠(yuǎn)不可能比本身自己還大,所以這個(gè)條件判定恒為 false,在 while 語(yǔ)句中是不會(huì)輸出任何東西;而在 do...while 語(yǔ)句中如結(jié)果可見(jiàn),還是完成一次 do 語(yǔ)句中的程序。

四、嵌套循環(huán)

和判斷語(yǔ)句一樣,循環(huán)語(yǔ)句一樣是可以嵌套的。但循環(huán)語(yǔ)句有以上三類不同類型的循環(huán)語(yǔ)句,它們之間互相也是可以嵌套的。

for(int i=0;i<=5;i++){
    while(i<4){
        Console.WriteLine(i);
        i+=1;
    }
}
/*
0
1
2
3
*/

五、無(wú)限循環(huán)

無(wú)限循環(huán)又叫做死循環(huán),意思就是無(wú)休止、無(wú)窮止地循環(huán)下去。而造成無(wú)限循環(huán)的原因,就是因?yàn)檠h(huán)語(yǔ)句中的判斷條件的值恒為 true,那么該循環(huán)體就會(huì)一直循環(huán)下去。

int num = 0;
while(num < 10){
    Console.WriteLine(num);
}
// 無(wú)限打印 0

這個(gè)程序少了 num += 1,所以 num 值是沒(méi)有改變的,一直都是 0。而且 0 永遠(yuǎn)比 10 小,所以這個(gè)條件就一直成立,結(jié)果就是無(wú)限循環(huán)打印 0.

六、循環(huán)控制語(yǔ)句

1、break

有時(shí)候,并不希望完全循環(huán)結(jié)束,而是獲得某個(gè)期望值,那么就可以結(jié)束這個(gè)循環(huán)語(yǔ)句。而用來(lái)終結(jié)循環(huán)語(yǔ)句,就需要使用到 break 關(guān)鍵字。

int num = 0;
while(num <= 5){
    Console.WriteLine(num);
    if(num == 3){ 
        break;
    }
    num += 1;
}
/*
0
1
2
3
*/

可以看到,num 值等于 3 的時(shí)候,循環(huán)就已經(jīng)結(jié)束了。這就是因?yàn)?break 關(guān)鍵字在這起的作用,結(jié)束循環(huán)

2、continue

另一個(gè)場(chǎng)景中,我們不是要所有的循環(huán)結(jié)果,比如在篩選產(chǎn)品的過(guò)程中,壞的自然就會(huì)被排除在外,而好的就保留下來(lái)。continue 關(guān)鍵字在循環(huán)體中就相當(dāng)于是排除的作用,到了不想要的內(nèi)容的時(shí)候,就自動(dòng)跳過(guò),直接執(zhí)行下一次循環(huán)。

for(int i=0;i<=3;i++){
    if(i == 2){
        continue;
    }
    Console.WriteLine(i);
}
/*
0
1
3
*/

從上面這個(gè)程序中可以看到結(jié)果只有 0 1 3,而 2 已經(jīng)被跳過(guò)去,排除在外。依我的理解而言,continue 就相當(dāng)于是篩選器,將滿足條件的內(nèi)容跳過(guò),排除在外,留下的是所需要的內(nèi)容。

七、總結(jié)

以上就是今天關(guān)于 C# 語(yǔ)言中循環(huán)語(yǔ)句的學(xué)習(xí)記錄,下面做一個(gè)簡(jiǎn)單的復(fù)述:

循環(huán)語(yǔ)句的類型:

  1. while 循環(huán):只要滿足條件,就可以執(zhí)行循環(huán)體中的語(yǔ)句;否則,就不執(zhí)行。
  2. for/foreach 循環(huán):for 循環(huán)和 while 循環(huán)類似,但 for 循環(huán)可以定義初始值和自增自減的值,當(dāng)然也可以不定義。foreach 循環(huán)在迭代數(shù)組和集合對(duì)象的時(shí)候,更為簡(jiǎn)單便利。
  3. do...while 循環(huán):無(wú)論滿不滿足條件,do...while 至少會(huì)執(zhí)行一次內(nèi)容。
  4. 每個(gè)循環(huán)語(yǔ)句互相之間都可以嵌套使用。

無(wú)限循環(huán):即死循環(huán),當(dāng)循環(huán)條件結(jié)果恒為 true ,就會(huì)造成無(wú)限循環(huán)或者死循環(huán)。

循環(huán)控制語(yǔ)句:

  1. break - 用來(lái)結(jié)束循環(huán)的。
  2. continue - 用來(lái)跳過(guò)其本次循環(huán),直接進(jìn)行下一次循環(huán)。
C#

0 人點(diǎn)贊