关闭

C#入门之循环结构

140人阅读 评论(0) 收藏 举报
分类:

一. C#循环流程图和while循环

循环是由循环体(需要重复执行的命令)和循环条件组成的。

运行时,先判断循环条件,若条件为 true ,就执行循环体一次,然后再判断条件...当条件为 false 时,结束循环。

举个例子,输出1-10的整数


可以用while循环结构来实现


 while 循环结构中,循环条件写在 ()中,循环体写在 {} 中。

while 循环通常有一个计数变量,循环开始前声明并初始化这个变量

需要有循环条件,当条件为 true 时,执行一次循环体,当条件为 false 时,结束循环。

循环体里面需要有技术变量的自加语句,否则循环可能无法退出(即“死循环”)。


二. C#算法——求和

循环累加的方式求和

1. 声明变量 sum 用来存储“和”。 sum 的初始值赋为 0 。

2. 循环,用变量 x 访问每一个数字,用 sum+=x 的方式累加。(即 sum=sum+x; )

3. 循环结束后, sum 中存储的即是和。



三. C#中for循环

for循环适合于“已知循环次数”的循环。

例如,输出三次“我能行!”,用while可以写成


用for循环可以写成


 for 循环 ( ; ; ) 中的两个分号是不能缺少的。

for 循环运行时,首先进行变量声明和赋值;

接下来判断循环条件,若条件为 true ,则执行循环体一次,若条件为 false ,则结束循环;

执行循环体后,进行变量自加。然后会进入下一次循环。



四. C#中do...while循环

do...while循环结构运行顺序如下


do...while会无条件执行第一次的循环

例如


尽管循环条件始终为 false ,但由于 do...while 循环第一次执行循环体不判断条件,所以循环体还是执行了一次。

所以运行结果为1。


小贴士:最常见的三种循环结构


例如

static void Main(string[] args)
        {
            int x = 2;
            do
            {
                x++;
                Console.Write(x+" ");
            }
            while(x>2&&x<=4);
        }

运行结果为3 4 5


五. C#循环结构之continue

循环中可以应用 continue 关键字中止一次循环,直接进入下一次。

例如


当程序执行到到 continue; 的时候,会立即停止本次循环体,直接进入下一次循环。所以,第三行输出比其他行少一些:


所以,可以使用 continue 关键字,在循环中剔除一些特殊的数据。


六. C#循环结构之break

break switch 结构的作用是“跳出switch结构”。

break 在循环中的作用是“结束循环”。

例如


运行结果



利用 break 关键字和 true 关键字,我们可以用另一种方式编写循环,下面的代码是输出1-5的整数:



七. C#循环结构之嵌套循环

在一个循环体中包含另一个循环,称为“嵌套循环”。

当2个循环嵌套的时候,外层循环体执行一次,内层循环体执行 n 次( n 是内层循环的次数)。

内层体被执行的总次数 = 内层循环次数 * 外层循环次数。

例如


运行结果



作业题


代码如下

方法1:

static void Main(string[] args)
    {
          for(int y=1;y<=7;y++)  //请完善代码
            {

            for(int x=1;x<=7;x++)
                {

                  if(x==y || x==8-y)
                  Console.Write("O");
                  else
                  Console.Write(".");

                }
           Console.WriteLine();

           }
    }

方法2:

static void Main(string[] args)
   { 

        for (int y = 1; y <= 7; y++)  //请完善代码
            {
                for (int x = 1; x <= 7; x++)
                {
                    string a = "O", b = ".", c;
                    if (x == y || x == 8 - y)
                        c = a;
                   else
                        c = b;
                   Console.Write("{0}  ",c); //还可改为 Console.Write(c);  或者  Console.Write(c+"  ");
                }
                Console.WriteLine();
             }
            Console.ReadKey();

   }


关于当初不能实现的原因:

1.不能换行?→for循环必须加{ },不可以省略,之前省略了,所以结果不对

2.是否可以引用参数,内循环改为如下代码?

for(int x=1;x<=7;x++)

string a='O', b='.', c; → 字符串要用双引号

if(x==y || x==8-y)

c=a;

else

c=b;

Console.Write({0}+" ", c); →没有这种方式,参见上面蓝色的改动

总体还是要加{ },不然没有换行效果





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8018次
    • 积分:630
    • 等级:
    • 排名:千里之外
    • 原创:57篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类