一. 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); →没有这种方式,参见上面蓝色的改动
→总体还是要加{ },不然没有换行效果