前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >能否简单地讲清楚循环语句?

能否简单地讲清楚循环语句?

作者头像
高一峰
修改2020-09-22 14:22:18
4360
修改2020-09-22 14:22:18
举报
文章被收录于专栏:高渡号外高渡号外

能否简单地讲清楚循环语句?

—— 新手编程1001问之C#编程基础


曾经听一位有名望的计算机专业老师跟我讲过一件事,他说他的历届学生在学习语言课程的时候,遇到循环语句,总是感觉比其他流程控制语句理解起来更为难一些。特别是一些女生,对循环语句的理解似乎更费劲。

循环语句真的那么难以理解吗?

我后来尝试过跟我的学生探讨这个问题,其实,如果他们不花点功夫刻意去领悟的话,确实会觉得相对没那么好理解。特别是如何熟练的使用他们,会更不容易一些。

于是,我从一个“会使用者”的的角色中跳出来,试图去体会初学者的感受,发现大家的反馈应该没错。我们说,学习计算机语言有利于训练我们的逻辑思维能力,其实这种训练,它主要就体现在学习、掌握和熟练运用流程控制语句上面,而循环语句在所有的流程控制语句中,的确更抽象一些,就像多维空间超出我们日常认知范围一样,理解一个循环语句,需要我们有更强的想象力。

但是,遗憾的是,学习和掌握它们却仍然没有什么捷径。应主题的要求,我们今天就系统地,且尽可能简洁地把循环语句讲清楚,以方便大家的理解和运用。

首先,我们要建立一个基本的认知:所有的循环语句,都是需要建立循环条件的。在条件成立的情况下,重复执行指定的代码块。

常用的循环语句有以下四种:

  • while 语句
  • do 语句
  • for 语句
  • foreach 语句

1、while 循环

根据while括号里的条件,判断是否执行循环体内的代码块。条件成立则继续执行,否则,终止循环。

代码语言:javascript
复制
//while循环语句的静态方法
static void WhileStatement(string[] x)
{
    //定义一个循环计数器
 int i = 0;
 //根据条件判断,是否继续执行循环体内的代码块
 while (i < x.Length)
    {
        Console.WriteLine(x[i]);
        i++;
    }
}

2、do 循环

同样是根据while括号里的条件,判断是否执行循环体内的代码块。条件成立则继续执行,否则,终止循环。

但是,它与while循环的显著差别是,do循环体里面的代码会被首先执行一次以后,才开始检查循环条件。

代码语言:javascript
复制
//do循环语句的静态方法
static void DoStatement(string[] x){
 string s = '开始循环...';
 int i = 0;
 //do循环开始
 do
    {
        Console.WriteLine(s);
        s = x[i];
        i++;
    } while (!string.IsNullOrEmpty(s));
}

3、for 循环

for循环自定义完整的循环条件,包括循环计数器、计数器的自增长,以及计数器的基数范围。for循环因为是一个基于计数器的循环,所以它有时也称之为迭代器。

代码语言:javascript
复制
//for循环语句的静态方法
static void ForStatement(string[] args)
{
  //for循环开始
 for (int i = 0; i < args.Length; i++)
    {
        Console.WriteLine(args[i]);
    }
}

4、foreach 循环

foreach循环定义一个元素对象,这个元素对象的值将自动按索引顺序取值于一个序列类型。循环语句将执行到序列类型的最后一个索引,索引结束后循环终止。

代码语言:javascript
复制
//foreach循环语句的静态方法
 static void ForEachStatement(string[] args)
{
 //foreach循环开始
 foreach (string s in args)
    {
  //s自动按索引顺序取值于数组args
        Console.WriteLine(s);
    }
}

break 语句:

break,负责终止一个循环语句。它通常放在一个条件判断语句中。

代码语言:javascript
复制
//演示break语句的静态方法
static void BreakStatement(string[] args)
{
 int i=0;    
 //循环语句
 while (true)
    {
 string s = args[i];
 //如果条件成立则终止循环
 if (string.IsNullOrEmpty(s)) {
 break;
        }
 //打印输出
        Console.WriteLine(s);
        i++;
    }
}

continue 语句:

continue,直接跳到下一轮循环。它通常也是放在一个条件判断语句中。

代码语言:javascript
复制
//continue语句的静态方法
static void ContinueStatement(string[] args)
{
 //for循环
 for (int i = 0; i < args.Length; i++)
    {
 //如果条件成立直接跳到下一轮循环
 if (args[i].StartsWith("/")){
 continue;
        }
        Console.WriteLine(args[i]);
    }
}

好了,今天的问题就讲到这里,希望对你有帮助。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 高渡号外 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 能否简单地讲清楚循环语句?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档