foreach循环符合就不往下走了_【自学C#】I 书 06 循环语句

0adb26a77e874c8c9e4fdad36a216cc7.png

一、简介

    循环结构是结构化程序3种基本结构之一,和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。

    【顺序结构就是程序从第一行开始逐一执行,需要选择结构就分叉,遇到循环结构就循环。直到跳出循环,继续按顺序执行。】

二、常见的循环有五种

    1.while语句

    2.do。。。while

    3.for语句

    4.foreach语句

    5.goto语句,但不建议使用。因为流程无规律,可读性差,有可能导致程序无法预知。

三、while语句

    作用是判断一个条件表达式,以便决定是否进入和执行循环体。

    当满足该条件时进行循环,不满足条件时,则不再执行循环。

    表达式:

        while(表达式){

                语句块(又称循环体)

        }

3d25ac5fc34b136ac639b5639c8c591c.png

    1.首先使用关键字while,然后执行表达式里的式子,如果为true,就执行语句块里的东西,并且再跟while后的表达式里进行比较,如果为true,就继续循环,如果是false,就跳出循环。

    2.例,示例代码

    1+2+3+4+5+6+。。。+99+100的结果是?

fc2d4fc33e38ea10e8e4a9db53c17458.png

    while(i<=100)//循环语句

四、do。。。while语句

    1.与while语句相似,但考虑的问题的角度不同。

        while语句,先判断条件是否为真,如果为真后进入循环。

        do。。。while语句,先执行一次循环体代码,然后在进行判断。

    2.表达形式为:

    do{

        语句块(循环体)

    }while(表达式);

    3.流程图

5f4a220d2e326329ba51f908ba57e1cd.png

    4.示例代码

        不断重复“输入一个0-10之间的数,并输出”

b502a98da716aec0c34d42f63f2c2475.png

    5.示例

        求1~100的和

e7df8330be6e6c5e986a69b141d30c55.png

感觉就是这个模式,没什么好说的。只有跟其他顺序结构和选择结构搭配,才能有所效果吧?

    【注意】

        do。。。while的while(表达式);后面是有分号结尾的!!!

        while(表达式){}    后面是没有分号的!!!

五、for语句

    for语句的使用频率,远远大于while语句。使用起来不仅灵活,还能代替while语句。

    表达式:

    for(表达式1声明变量;表达式2判断变量;表达式3改变变量){

        语句块,满足就执行,不满足就跳出循环。

    }

    流程图:

058ff039e7ef990a4762e8172f2a2abb.png

        其中,当表达式2的值为假时,则直接跳出循环。

        表达式1:一般情况下用于给循环变量赋初始值。

        表达式2:返回值必须是布尔值,作为循环是否继续执行条件。

        表达式3:一般情况下用于给循环变量增值或减值。

        1.例,示例代码

            同样是0~100的和,用for语句实现

f3dd6bf0eddb0c3ab462bd5a034b3ef1.png

        2.例,上述代码进行变形

d54c2cac755f52019fa1aae4033e60dc.png

        3.例,继续变形,查看变化

871cfd685badffae668ac834c9bc7d01.png

        4.例,再变形,查看变化

            值得注意的是,表达式是从左往右按照顺序执行,所有把for循环修改成这样后,结果就变成5150了。

268ba9d33d32533c9226361417c930d7.png

i++,sum+=i    //只是换个位置,就会把100也加进入

由于先执行i++,后执行sum+=i,这里的i就不是前面的i,而是i++后的i;

六、循环的嵌套

    一个循环体内又包含另一个完整的循环,称为循环的嵌套。

    内嵌的循环体还可以嵌套循环,这就是多层循环。

    3种循环可以互相嵌套。如(while循环、do...while循环,for循环)

    1.例,打印一个用“*”号的9*6矩阵。(这算是最经典的案例了吧!)

        由于这里采用的是Windows应用窗口打印的方式,所有需要创建应用窗体。

        1)创建Windows应用窗口。

        2)把窗体Form1命名(Name属性)为MainForm,Text属性为“星号矩阵”。

        3)放置一个Button按钮控件,Name属性:btnPlay;Text属性:“打印矩阵”。

        4)放置一个TextBox控件,Name属性:txtMatrix,Multiline属性:true;调整适当的高度。

        5)双击按钮控件,输入代码

dd0ee8daa749ded94ade1e88ad25dbdb.png

运行结果

735fafb2fc267b3343921a73eb5fea83.png

    2.例,沿用上述框架,修改代码,打印直角三角型

3cb1ef5c49859afae059d32b269c5e37.png

    3.例,打印正三角型

39312365daebd0430406e0cb120d0c63.png

运行后

88afd740d1872c9d14c05cf8f29683cc.png

 for(int i = 0; i < row; i++)    //表示整体行数,row自定义

    for(int j = i; j

        j=i,表示在第一行时,j从0开始,输出row-1个空格;

                        在第二行时,j从1开始,输出row-1个空格;

                        也就是没循环一次,就少一个空格。

    for(int k = 0; k <= i; k++){s += "* ";}

        在第一行时,k=0,k<=1,k++,表示输出1个*号;

        在第二行时,k=0,k<=2,k++,表示输出2个*号;

        也就是在上面的“空格”后面,按行数追加*号个数。

七、foreach语句

    一种新的循环类型,用于访问集合里的每个元素。

    表达形式:

        foreach(类型 标识符 in 表达式){

            语句块

        }

    1.例,逐个输出字符串的字符

16282ec10957c64f169b6c424daedab3.png

结果为 a-b-c-d-e-

    2.例,如果把“char”换成“int”

7b03da3d48fe407a7e639bdf323ea426.png

97-98-99-100-101-

因为字符可以隐式转换为int类型,所有可以这么做。但换成其他类型,如bool类型,就会报错。

    3.例,使用for循环达成上述效果

ac5525536ec2b783897dde91db7cbee6.png

    s.Length为字符串s的长度。

    建议,使用foreach语句时,尽量不要使用for语句。

    这是因为foreach语句的运行速度大多数时候比for语句快。

八、break语句

    也就是中断语句,跳出循环。

    一般使用在while,do...while,for,foreach和switch语句。

    1.例,在键盘中输入0~9之间的数。

3fa86182b5a248e2a16314e56f9d1c08.png

break跳出的是,当前的循环体,而不是整个程序

在嵌套循环中,braek语句只能跳出离自己最近的那一层循环。

九、continue语句

    作用结束本次循环,接着执行下一个循环。并不像break那样,彻底结束整个循环体。

    1.例,把10~20中的不能被3整除的数输出出来。

6b70f1cd87754bb0eb480babd4348270.png

结果运行为:10  11  13  14  16  17  19  20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值