zoukankan      html  css  js  c++  java
  • 【C#学习笔记】【6】找出0-100以内的所有的能被3整除或者被5整除余2的数(二)(流程控制)

    在上节中,我们画的那个流程图还记得么?判断部分我们会了,就差循环了,下面我会介绍三种常用的循环。

    循环结构

    while循环(当循环,至少我的C语言老师这么叫)

    先来介绍一下语法吧,如下

    while(条件表达式)
    {
        //这里是循环体,当上面的条件表达式为真时,执行循环体,否则退出
    }

    while后面跟一个条件表达式,如果是真的话才会执行循环。执行完循环体再判断条件表达式,直到为假的时候推出循环。

    例如我们输出1到100的数,例程如下:

    int i=1;
    while (i <= 100)
    {
        Console.WriteLine(i);
        i++;
    }

    输出的结过如下:

    //结果如下
    1
    2
    3
    ...
    99
    100

    这个例子看懂了么?我来解释一下,首先i=1执行到while时,判断i<=100,是真的,所以进入循环中,输出了i,然后i自增了1,也就是i现在等于2,然后又回到了循环的头部,判断i<=100,是真的,又进入循环体,一直到i=101的时候,条件i<=100发现是假的,结果循环就不执行了,也就结束了。

    好的,相信你已经明白了,那么我们把文章题目中的问题解决了吧:

    int i=0;
    while (i <= 100)
    {
        if (i % 3 == 0 || i % 5 == 2)
        {
            Console.WriteLine(i);
        }
        i++;
    }

    发现好简单的,对吧。这里我没有用else,因为只需要找出符合题意的数就行,题中没有说要处理不符合的数。顺便说一下,这里的 i 其实是一个计数器,他控制了循环的次数。下面我们介绍while的变体。

    do…while(直到循环,当然我老师告我这么读)

    当然,先上语法:

    do
    {
        //这里是循环体
    }while(条件表达式);

    和while差不多,就是多了个do,循环体跑到while前面了。我来解释一下执行顺序:

    第一步先执行循环体,然后才去判断条件是否为真,如果为真,进行第二次循环体执行,,,直到条件为假,退出。

    可以看出,这个直到循环和当循环区别,直到循环至少会执行一次循环体,而当循环不一定。当然,实际工作中,我们用的当循环更多。

    这里就不举例子了。下面介绍个最常用的,可以叫做计次循环。

    for循环(计次循环)

    看标题,说明这个本身可以计次。来,上语法

    for (int i = 0; i < length; i++)
    {
        //循环体
    }

    解释一下过程。

    for后面跟着三个语句,第一句其实是声明了一个计数器(刚才介绍了什么是计数器),第二个是计数器的长度,也就是一个条件表达式,第三句,计数器自增。

    执行的流程是,首先执行第一句,初始化计数器,然后判断第二句是否为真,接着进入循环体执行,循环体执行完第一次后,执行for后面的第三句,也就是计数器的自增,然后判断条件,为真就又一次进入循环体,直到退出循环。说的有点抽象,我们用for循环来做一次1+2+3+4+…+100,代码如下:

    int sum = 0;//其实这个叫累加器
    for (int i = 1; i <= 100; i++)
    {
        sum += i;
    }
    Console.WriteLine(sum);
    
    //运行结果5050

    是不是比用while简单一些呢?

    这是一个最常用的循环。当然,如果你将外面的调节都写成真的,那就是死循环了,再也出不来了,下面我介绍两个关键字,可以在适当的时候跳出循环。代码如下:

    int i = 0;
    while (true)
    {
        if (i < 10)
        {
            Console.WriteLine(i);
            i++;
        }
        else
        {
            break;
        }
    }
    
    
    //运行结果
    0,
    1
    2
    3
    ...
    9

    我写了个死循环,但是真正的却循环了10次,因为i>10的时候,我用了break,这个词可以跳出整个循环。

    再看下面的一个例子:

    int i = 0;
    while (true)
    {
        if (i < 10)
        {
            i++;
            continue;
        }
        if (i < 20)
        {
            Console.WriteLine(i);
            i++;
        }
        else
        {
            break;
        }
                    
    }
    
    //结果
    10
    11
    ...
    19

    发现点什么没有,continue把循环后面的屏蔽掉了。

    虽然前10次循环,第二个if是真的,但是并没有执行。也就是说,一旦循环中遇到了continue语句时,循环体就不再执行了,但是会进入下一圈的循环,不会像break那样把所有的循环都停掉。

    总结

    1. 三种循环语句,重点掌握while循环和for循环。
    2. break和continue的区别。

    练习

    1. 求级数和1/(1*3)+2/(3*5)+3/(5*7)+…+n/((2*n-1)*(2*n+1)),要求前N-1项和于前N项和的差的绝对值小于0.00001时结束。并且输出此时的n。

    上篇中的练习答案

    1.

    int a = 5;
    int b = 4;
    int c = 7;
    if (a + b > c && Math.Abs(a - b) < c) //取绝对值是为了防止小边减去大边
    {
        Console.WriteLine("这三边能组成三角形");
    }
    else
    {
        Console.WriteLine("这三边不能组成三角形");
    }

    2.3.4略(若有疑问,请发邮件给我,646858695@qq.com)

    本文为原创文章,允许转载,转载时请注明转载自http://www.cnblogs.com/zp646858695尊重作者劳动成果。
    您可以收藏我的博客或者关注和订阅,每天都会发布最新内容

  • 相关阅读:
    一步步介绍如何给项目添加单元测试
    日期格式化在移动端的问题
    使用VW时,图片的问题
    转:vw适配中使用伪类选择器遇到的问题
    ES6模块的import和export用法总结
    转:如何在Vue项目中使用vw实现移动端适配
    PhpStrom添加调试功能
    小程序商城笔记
    使用TortoiseGit对android studio工程进行代码版本控制
    Android Studio 常见异常解决办法
  • 原文地址:https://www.cnblogs.com/zp646858695/p/4655827.html
Copyright © 2011-2022 走看看