一周学会C#(语句三)

王朝c#·作者佚名  2006-01-08
宽屏版  字体: |||超大  

一周学会C#(语句三)

C#才鸟(QQ:249178521)

9.for语句

· for 语句

w for块中声明的变量是局部的,只在for块中有效

w 可以省略for语句中的任何一部分

for (int digit = 0; digit != 10; digit++)

{

Console.Write("{0} ", digit);

}

//屏幕上显示0 1 2 3 4 5 6 7 8 9

在for块中声明的变量只在for块中有效。例如:

for (int digit = 0; digit != 10; digit++)

{ ... }

Console.WriteLine(digit); //错误,digit只在for块中有效

可以通过逗号在for语句中声明多个变量和多个变化语句:

for (int i = 0, j = 0; i + j < 20; i++, j++)

{ ... }

10.foreach

· 来源于shell, VB, PERL

w 用于任一集合,包括数组

using System;

sealed class Foreach

{

static void Main(string[] args)

{

foreach (string arg in args)

{

Console.Write("{0} ", arg);

}

Console.WriteLine();

}

}

把以上程序在windows命令行进行编译:C:\Sharp>csc Foreach.cs

然后键入:C:\Sharp>Foreach 0 1 2 3 4 5 6 7 8 9

屏幕上显示0 1 2 3 4 5 6 7 8 9

foreach用来遍历集合或数组中的元素。

11.foreach的几点注意

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

w 类型和标识符声明一个循环变量

w 循环变量隐含为readonly, 不能有ref 或out 修饰

w 表达式是可列举的集合

sealed class ForeachTranslation

{

static void Example(MyWibbleCollection wibbles)

{

MyEnumerator pos = wibbles.GetEnumerator();

while (pos.MoveNext())

{

Wibble current = pos.Current;

Console.Write("{0} ", current);

}

}

}

集合类型的定义规则:(假设集合的名字是C)

C必须定义一公有函数GetEnumerator(),该函数的返回值是一结构类型或是一类类型或是一接口类型(假设返回值的名字是E);

返回值E的定义规则:

ü E包含一公有函数MoveNext(),用来使E指向集合中的下一个元素,返回值的类型是bool。

ü E包含一公有属性Current,用来读取当前值。这个属性的类型是集合元素的类型。

12.break/continue

break用来结束一个循环,continue用来重新启动一个循环。

13.找错

{

for (int i = 0; i != 12; i++) 1

{

...

}

int i = 0;

}

for (int i = 0, i == 12, i++) 2

{

...

}

foreach (int i in array) 3

{

i++;

}

第1个程序的错误:不能在一个父块和一个子块中声明两个相同名字的变量

第2个程序的错误:不是使用逗号分割for语句的三个部分,而应使用分号。

for语句的判断条件应为逻辑语句。

第3个程序的错误:foreach的循环变量是只读的

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有