App下載

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

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

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

一、while 循環(huán)

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

while(condition){
    statements;
}

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

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)后面的括號里面,需要定義三個內(nèi)容。

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

示例:

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

2、foreach 循環(huán)

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

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]);
}

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

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

格式:

do{
    statements;
}while(condition);

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

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

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

四、嵌套循環(huán)

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

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

五、無限循環(huán)

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

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

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

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

1、break

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

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

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

2、continue

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

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

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

七、總結(jié)

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

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

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

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

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

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

0 人點(diǎn)贊