C#教程(9)———— 循环语句

前言

我们常常在电影中看到主角陷入了时间循环,卡在了某一天无法离开,只有当满足了什么条件才能打破循环出来,那么程序中其实也有类似的东西,比如说我一直在考试,每次考试完以后我都要判断我的分数到不到80分,能不能吃肯德基,难道我就必须每次都写一个if语句进行判断么,在后续的需求中,每次考试我都需要写一次判断,是不是也过于麻烦了,那么是否有什么办法可以简化这一过程能?

1 C#循环

循环是一种一遍一遍不断执行代码的做法,就好像陷入时间循环一样,必须满足某个条件才能打破循环跳出来,当遇到需要一遍遍执行相同的代码,或者仅仅是传入的值不同,但传入的值不同时,使用循环将是一种不错的解决思路,那么下面我们来看看C#中有哪些循环吧。

1.1 while循环

while循环是一种较为常见的循环类型,用于当满足某一条件时执行某些语句,比如之前我们常用的例子,当我分数高于80分时,可以吃肯德基,那么我们现在换一下场景,我第一次考试考了100分,以后每次考试都退步一分,也就是分数减一,那我可以吃几次肯德基呢?

int score = 100;//我的分数
int num = 0;//吃肯德基的次数
while(score >= 80)
{
	Console.WriteLine("吃肯德基");//吃一次肯德基
	num++;//吃肯德基的次数+1
	score--;//考试成绩降低一分
}
Console.WriteLine(num);//输出结果为21

我们可以看到上面的代码中,使用了一个while循环,并返回了结果,可以吃21次肯德基,不知道大家是否看懂while循环怎么使用了呢?我们可以来看下while循环的语句结构吧。

while(循环条件)
{
	语句块;
}

其实while循环的结构很简单,在while关键字后的小括号内是一个循环的条件(bool类型),只有当满足这个循环条件(bool值为true)的时候才能进行循环,也就是上面的吃肯德基的例子中,只有当我的分数大于或等于80分的时候,我们才能吃肯德基,一个道理。

然后下面大括号中的语句块,就是当满足这个条件时我们要做的事情了,比如上面的例子中,满足分数条件时,吃肯德基,并且吃肯德基的次数要加一,下次考试成绩还会减一。

当循环执行到条件不被满足的时候,整个循环会跳出,也就是说当分数低于80分的时候,程序将从循环的大括号中离开,执行下方输出循环次数的语句,如果用程序框图表示就是下面这样子了。

while循环

1.2 do…while循环

do…while循环和之前的while循环很相似,这里我们还用吃肯德基的例子来看一下差距在哪里。

int score = 100;//我的分数
int num = 0;//吃肯德基的次数
do
{
	Console.WriteLine("吃肯德基");//吃一次肯德基
	num++;//吃肯德基的次数+1
	score--;//考试成绩降低一分
}
while (score >= 80);
Console.WriteLine(num);//输出结果为21

可以看到,虽然代码形式发生了改变,但并没有影响结果,那么do…while和while循环的区别在哪里呢,我们先来看结构。

do
{
	语句块;
}
while(循环条件);

可以看到,它的结构相比于while循环发生的改变,第一个多了个do关键字,第二是while语句变到了下方,而它的作用和while循环也类似,但它的变化是,会先执行一次语句块,再判断循环条件,就像代码长得样子一样,while循环,会在执行到while关键字时,直接进行循环条件的判断,但do…while会在执行时,先执行do下面的语句,再判断循环条件,如果满足循环条件则回去执行语句,如果不满足则跳出。

也许文字不太清楚,一样我们来看程序框图。

do...while循环
这样看是不是清楚多了呢,其实也就是说,while循环如果一开始的时候我考的分数就低于80分,那么我一顿肯德基都吃不到,但如果是do…while循环,不管我第一次考的分数是多少,哪怕只有8分,也一定能吃到第一次的肯德基,然后再因为分数不足没法吃第二次,相比之下,真是一位仁慈的家长呢。

1.3 for循环

for循环是最为常见的一种循环类型,它的结构相对比较复杂,我们先来看for循环的结构吧。

for(语句1;语句2;语句3)
{
	要循环执行的代码块;
}

语句1

语句1是整个for循环中,第一个被执行的语句,而且只有在第一次循环时会执行一次,通常我们会用他去初始化我们循环中需要的一些条件。

语句2

语句2是我们循环中的循环条件,只有当满足这个条件才会执行循环中的代码块。

语句3

这个语句是每次循环最后的时候执行的语句,通常用于自增或自减循环次数。

如果上面的描述不够清晰,我们可以来看程序框图。

for循环
这样是不是清晰的多了呢,我们可以来看一下如何用for循环来写出上面的吃肯德基的代码。

int num = 0;//吃肯德基的次数
for(int score = 100; score >= 80; score--)
{
	Console.WriteLine("吃肯德基");
	num++;//吃肯德基的次数增加
}
Console.WriteLine(num);//输出结果为21

这样我们就完成了for循环下的吃肯德基的例子,是不是结构更为清晰一点呢?

其实for循环中的语句可以不写全,比如还可以写成这样:

int score = 100
int num = 0;//吃肯德基的次数
for(; score >= 80;)
{
	Console.WriteLine("吃肯德基");
	num++;//吃肯德基的次数增加
	 score--
}
Console.WriteLine(num);//输出结果为21

但大家要注意,不管写不写这些语句,都必须要写出分号。

其实第二个语句,循环条件也可以不写出,但如果不写出的话就会成为一个死循环,也就是无论如何都停止不了的循环,也一定要注意哦。

1.4 特殊关键字

在循环中还有两个特殊的关键字,break和continue。

break,当程序执行到这个语句时,不论循环条件是否达成,都会立即跳出当前循环,不再继续往下执行循环。
continue,当程序执行到该语句时,都会立即跳过这次循环,直接进行循环条件判断,进入下一次循环过程。

总结

本篇中主要介绍了三种循环语句以及他们的使用方式,循环在程序中是最为重要的一部分,也是很难弄明白的一个部分,大家一定要多加理解和练习,才能很好地掌握这部分内容。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值