C# 编程语言学习系列(六)

2021-12-13 14:54:51 浏览数 (2879)

有些游戏之中会有挂机,在挂机的期间,由系统自动操控角色重复完成玩家指定的内容。例如挖矿,系统就会一直重复发现矿,挖矿,没有矿,停止挖矿这一系类操作。关于循环和重复,今天就来学习一下 C# 语言中的循环语句。

一、while 循环

首先给出while 循环的语法格式:

while(condition){
    statements;
}

只要 condition 的值判定为 true,那么程序就会自动重复执行 while 里面的语句;当 condition 的值判定为 false,那么 while 就会停止循环,直接执行 while 之后的语句。

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

二、for/foreach 循环

1、 for 循环

格式:

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

for 循环后面的括号里面,需要定义三个内容。

  • init - 在循环开始后,第一个执行的内容,而且执行一次。这一步可以声明并初始化任何循环控制变量,也可以不在这里写任何语句,但必须要有分号。
  • condition - 循环的判定条件。如果判定结果为 true,则执行下面的 statements;否则,就结束了循环,执行循环体的下一个语句。
  • increment - 当执行完 for 循环主体后,控制流会回到 increment 语句并执行。该语句也可以留空,只需要在条件部分的后面留下分号即可。

示例:

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

2、foreach 循环

C# 是支持 foreach 循环语句的编程语言。foreach 循环可以用来迭代一个数组或者一个集合对象。例如:

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

相比两者,显然用来迭代数组或者集合对象而言,foreach 循环实现更为方便;而 for 循环相对来说,理解起来比较简单。至于怎么用,就看个人习惯和爱好了。

三、do...while 循环

格式:

do{
    statements;
}while(condition);

do..whilewhile 语句有一些相似,但也有些不同。不同在于,while 只要不满足条件,那么循环体内的语句一次都不会执行;而 do...whle 语句是无论你条件满不满足,都至少会执行一次的。

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

从上面的程序来看,10是永远不可能比本身自己还大,所以这个条件判定恒为 false,在 while 语句中是不会输出任何东西;而在 do...while 语句中如结果可见,还是完成一次 do 语句中的程序。

四、嵌套循环

和判断语句一样,循环语句一样是可以嵌套的。但循环语句有以上三类不同类型的循环语句,它们之间互相也是可以嵌套的。

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

五、无限循环

无限循环又叫做死循环,意思就是无休止、无穷止地循环下去。而造成无限循环的原因,就是因为循环语句中的判断条件的值恒为 true,那么该循环体就会一直循环下去。

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

这个程序少了 num += 1,所以 num 值是没有改变的,一直都是 0。而且 0 永远比 10 小,所以这个条件就一直成立,结果就是无限循环打印 0.

六、循环控制语句

1、break

有时候,并不希望完全循环结束,而是获得某个期望值,那么就可以结束这个循环语句。而用来终结循环语句,就需要使用到 break 关键字。

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

可以看到,num 值等于 3 的时候,循环就已经结束了。这就是因为 break 关键字在这起的作用,结束循环

2、continue

另一个场景中,我们不是要所有的循环结果,比如在筛选产品的过程中,坏的自然就会被排除在外,而好的就保留下来。continue 关键字在循环体中就相当于是排除的作用,到了不想要的内容的时候,就自动跳过,直接执行下一次循环。

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

从上面这个程序中可以看到结果只有 0 1 3,而 2 已经被跳过去,排除在外。依我的理解而言,continue 就相当于是筛选器,将满足条件的内容跳过,排除在外,留下的是所需要的内容。

七、总结

以上就是今天关于 C# 语言中循环语句的学习记录,下面做一个简单的复述:

循环语句的类型:

  1. while 循环:只要满足条件,就可以执行循环体中的语句;否则,就不执行。
  2. for/foreach 循环:for 循环和 while 循环类似,但 for 循环可以定义初始值和自增自减的值,当然也可以不定义。foreach 循环在迭代数组和集合对象的时候,更为简单便利。
  3. do...while 循环:无论满不满足条件,do...while 至少会执行一次内容。
  4. 每个循环语句互相之间都可以嵌套使用。

无限循环:即死循环,当循环条件结果恒为 true ,就会造成无限循环或者死循环。

循环控制语句:

  1. break - 用来结束循环的。
  2. continue - 用来跳过其本次循环,直接进行下一次循环。