一周学会C#(语句三)

一周学会 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 的循环变量是只读的

Published At
Categories with Web编程
Tagged with
comments powered by Disqus