C# 编程语言学习系列(六)
有些游戏之中会有挂机,在挂机的期间,由系统自动操控角色重复完成玩家指定的内容。例如挖矿,系统就会一直重复发现矿,挖矿,没有矿,停止挖矿这一系类操作。关于循环和重复,今天就来学习一下 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..while
和 while
语句有一些相似,但也有些不同。不同在于,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# 语言中循环语句的学习记录,下面做一个简单的复述:
循环语句的类型:
- while 循环:只要满足条件,就可以执行循环体中的语句;否则,就不执行。
- for/foreach 循环:for 循环和 while 循环类似,但 for 循环可以定义初始值和自增自减的值,当然也可以不定义。foreach 循环在迭代数组和集合对象的时候,更为简单便利。
- do...while 循环:无论满不满足条件,do...while 至少会执行一次内容。
- 每个循环语句互相之间都可以嵌套使用。
无限循环:即死循环,当循环条件结果恒为 true
,就会造成无限循环或者死循环。
循环控制语句:
- break - 用来结束循环的。
- continue - 用来跳过其本次循环,直接进行下一次循环。