Beginning C# Objects从概念到代码——1.11 循环和其他控制结构流程(二)
来源:互联网 发布:c语言轻量级 编辑:程序博客网 时间:2024/05/25 19:57
for语句是一种编程构造,用来执行指定次数的一个或多个语句。for语句的一般语法如下:
for (initializer; condition; iterator) {
// condition为true时要执行的代码
}
for语句定义三个放在后面圆括号中的元素,元素之间用分号分隔。
初始算子(initializer)用来给循环控制变量(loop control variable)赋予初始值。该变量可以在初始算子中声明,也可以在for语句之前的代码中声明。例如:
// 在语句中声明循环控制变量i:
for (int i = 0; condition; iterator) {
// condition为true时要执行的代码
}
// 当for循环推出时,i不再可用。
也可以这样:
// 在for语句之前声明循环控制变量i:
int i;
for (i = 0; condition; iterator) {
// 当condition 为true时要执行的代码
}
// 注意,因为i在循环语句之前被声明,
// 故推出for循环后仍可使用i。
条件算子(condition)是一个逻辑表达式,通常和循环控制变量有关:
for (int i = 0; i < 5; iterator) {
// 只要i小于5,就要执行这些代码
}
循环算子(iterator)通常用来递增或递减循环控制变量:
for (int i = 0; i < 5; i++) {
//只要i小于5,就要执行这些代码
}
注意,只在初始算子和条件算子后面使用分号,循环算子后面不需要。
下面是for循环的操作过程:
l 当程序执行至for语句时,初始算子被执行一次,且只被执行这一次。
l 然后计算条件表达式。如果该表达式值为true,则圆括号后面的代码会被执行。
l 该代码块执行完毕后,执行循环算子。
l 重新计算条件表达式。如果计算结果仍然为true,代码块和循环算子会再被执行。
这一过程循环往复,直至条件表达式值为false,for循环退出为止,
下面是用嵌套for语句生成简单乘法表的例子。循环控制变量j和k在相应的for语句中声明。只要满足对应for语句中的条件,该for语句后面的代码块就会被执行。++运算符被用来在代码块每次执行后递增j和k的值。
using System;
public class ForDemo
{
static void Main() {
// 生成简单的乘法表。
for (int j = 1; j <= 4; j++) {
for (int k = 1; k <= 4; k++) {
Console.WriteLine("" + j + " * " + k + " = " + (j * k));
}
}
}
}
执行结果如下:
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
等等。
注意ForDemo例子中字符串连接运算符+的使用;int变量j、k和字符串“”、“*”和”=”连接的结果,是string类型的值。
for语句后面圆括号中的三个元素都是可以省去的(不能省略那两个分号):
如果初始算子被略去,则必须在for语句之前声明和初始化循环控制变量。
int i = 0;
for (; i < 5; i++) {
// 只要i小于5就执行某种操作
}
如果循环算子被略去,需要在for循环体内部显式地更新循环控制变量的值,避免死循环:
for (int i = 0; i < 5; ) {
// i小于5时执行某些操作
// 显式地递增i
i++;
}
如果忽略条件算子,结果极有可能是陷入死循环:
for (;;) {
// 死循环!
}
在本章稍后的“跳出语句”部分,我们会了解到可以使用跳出语句中断循环。
和其他流程控制结构一样,如果在for语句后面只有一行语句,则可以省略大括号:
for (int i = 0; i < 3; i++) sum = sum + i;
不过,在任何情况下都使用大括号,被看作是良好的编程习惯。
1.11.4 while语句
while语句与for语句异曲同工,都被用来重复执行一段代码。不过,如果在循环开始时并不知道到底要执行多少次代码,最好使用while语句,因为只要条件符合它就会持续执行。
while语句的一般语法如下:
while (条件) {
// 条件为true时执行这些代码
}
条件可以是简单的或复杂的逻辑表达式,该表达式得出true或false的结果。例如:
int x = 1;
int y = 1;
while (x < 20 || y < 10) {
// 伪代码:
presumably do something that aflects the value of either x or y
}
当程序执行至一个while语句时,会首先求条件表达式的值。如果值为true,条件表达式后面的代码块就会被执行。代码块的执行结束后,再次对条件表达式求值,如果还是为true,则如此重复执行直至求得false值,退出while循环。
下面的简单例子演示了while循环的用法。被命名为finished的bool变量初始值是false。它被用来做标识:只要finished值为false,while循环后面的代码就会持续被执行。代码块中某些条件语句会把finished的值设置为true,while循环将在这个点上退出。
using System;
public class WhileDemo
{
static void Main() {
bool finished = false;
int i = 0;
while (!finished) {
Console.WriteLine(i);
i++;
if (i == 3) finished = true; // 设置标识值
}
}
}
执行结果是:
0
1
2
和其他流程控制结构一样,如果条件表达式后面只有一行语句,则可以省略大括号:
while (x < 20) x = x * 2;
不过,始终使用大括号被看作是良好的编码习惯。
1.11.5 do语句
使用while循环时,对条件表达式的求值操作先于跟在它后面的代码执行操作。因而,如果条件表达式值为false,则代码有可能永不被执行。do循环和while循环类似,不同的是代码块先于条件表达式求值操作之前被执行。这样,就能保证循环的代码块至少会被执行一遍。
下面是do语句的一般语法:
do {
// 要执行的代码
} while (condition);
作为while语句的标签,do语句的条件是一个逻辑表达式,将求得布尔值。把分号置于围绕在条件表达式的括号后面,标识do语句的结束。在明确知道需要执行至少一次循环体以初始化值的时候,可以使用do循环。
bool flag;
do {
// 无论flag初始值是什么都执行某些代码,
// 然后根据flag的值测算是否再次执行循环代码.
// 可以在循环体内部把flag的值设置为flase
// 标识来通知循环应该结束了。
} while (flag);
- Beginning C# Objects从概念到代码——1.11 循环和其他控制结构流程(二)
- Beginning C# Objects从概念到代码——1.11 循环和其他控制结构流程(一)
- Beginning C# Objects从概念到代码——1.13 代码块和变量作用范围
- Beginning C# Objects从概念到代码 ——第1章 初尝C#
- Beginning C# Objects从概念到代码 ——1.1 C#上手指南
- Beginning C# Objects从概念到代码——1.2 为什么用C#
- Beginning C# Objects从概念到代码——1.3 C#语言基础
- Beginning C# Objects从概念到代码——1.4 解析一个简单的C#程序
- Beginning C# Objects从概念到代码——1.9 C#表达式
- Beginning C# Objects从概念到代码——1.10 隐式类型转换和显式类型转换
- Beginning C# Objects从概念到代码——1.5 预定义类型
- Beginning C# Objects从概念到代码——1.6 变量
- Beginning C# Objects从概念到代码——1.7 字符串
- Beginning C# Objects从概念到代码——1.8 大小写敏感
- Beginning C# Objects从概念到代码——1.12 跳出语句
- 《Beginning C# Objects中文版——概念到代码》——C#入门好书
- 日泽IT笔记系列1-Beginning C# Objects 从概念到代码-1
- 日泽IT笔记系列1-Beginning C# Objects 从概念到代码-2
- Beginning C# Objects从概念到代码——1.9 C#表达式
- Beginning C# Objects从概念到代码——1.10 隐式类型转换和显式类型转换
- 下一站
- U 盤修復
- Beginning C# Objects从概念到代码——1.11 循环和其他控制结构流程(一)
- Beginning C# Objects从概念到代码——1.11 循环和其他控制结构流程(二)
- Access保留字&变量名列表,建表时应避免使用这些词汇和符号。
- Beginning C# Objects从概念到代码——1.12 跳出语句
- 运用最合适的解套方法--补仓五大诀窍
- solaris 10 DNS服务配置
- 第13届Jolt大奖评选结果揭晓
- 贵族,魔幻的 ”斗篷,扫把“
- 抒情诗歌欣赏(雨 巷 --戴望舒)
- 搜索引擎优化基础,第 2 部分: SEO 关键词和基础设施策略