/
/
/ C# 学习笔记 -- 第五天 程序结构
/
/ YFP 2005-12-19
/
/
学过编成的人都知道,基本的程序结构无外乎两种:分支和循环。无论哪种编成语言甚至脚本语言都至少支持其中一种。在模块化编程中这些技巧更是不可缺少。就算到了面向对象编程的时代,也必须使用这些技巧来实现各种方法。所以牢记这些基本语法和技巧对后期的开发是个很好的开始。
一、分支:
C#中有三种分支结构
1、使用"?"这个三元运算符
语法:
<测试语句> ? <为真时执行的语句> : <为假时执行的语句> ;
例子:
string myString = (myInt > 10)?"Last than 10.":"Greater than or equal to 10.";
注:如果这时myInt的值大于10,那么myString将被赋予字符串"Last than 10.",否则将被赋予"Greater than or equal to 10."。
2、if 语句
语法1:
if (<测试语句>)
<为真时执行的一条语句> ;
else
<为假时执行的一条语句> ;
注意,这时没有使用花括号。
语法2:
if (<测试语句>)
{
<为真时执行的一组语句> ;
}
else
{
<为假时执行的一组语句> ;
}
另外if语句可以镶套,也就是一个if语句中可以包含另外一个if语句。但是两个if语句的边界不能交叉,只能是包含于被包含的关系。
这样就出现了这样一种形式的if语句结构,其实他只是多个if语句的镶套。只不过这样写比较好看,便于理解。
例如:
if (<测试语句>)
{
}
else if (<测试语句>)
{
}
else if (<测试语句>)
{
}
else
{
}
3、switch语句
语法:
switch (<要测试的变量或语句>)
{
case <变量或语句的可能值>:
<语句1>
break;
case <变量或语句的可能值>:
<语句2>
break;
default:
<语句3>
break;
}
这是我们通常看到的switch语句的结构,其实“case <变量或语句的可能值>:”只是一个标示符,同其他标识符一样可以使用“goto”转到这些标识符。所以可能看到这样的语句不要感到奇怪,这在C#中是允许的。
switch (<要测试的变量或语句>)
{
case <变量或语句的可能值1>:
<语句1>
break;
case <变量或语句的可能值2>:
<语句2>
goto case <变量或语句的可能值1>;
default:
<语句3>
break;
}
注: 这就是变量值等于可能值2的时候执行语句完成后转向"case <变量或语句的可能值1>:"执行>。
switch (<要测试的变量或语句>)
{
case <变量或语句的可能值1>:
case <变量或语句的可能值2>:
case <变量或语句的可能值3>:
<语句1>
bread;
default:
<语句2>
break;
}
注: 这个就是当可能值1、2或3种任何一个满足都会执行语句1。
例如下面这个代码片断的执行结果大家可以猜测一下:
int a = 5;
switch(a)
{
case 1:
case 2:
case 3:
case 4:
Console.WriteLine("The A maybe equal to 1 or 2 or 3 or 4,but the true's A equal to {0}.",a);
break;
case 5:
Console.WriteLine("A equal to {0}.",a);
goto case 1;
default:
Console.WriteLine("Default val:{0}",a);
break;
}
结果:
A equal to 5
The A maybe equal to 1 or 2 or 3 or 4,but the true's A equal to 5
二、循环:
使用循环能够重复执行相同的语句。有下面三种形式。
1、for 循环
使用在预知循环次数时。
语法:
for(<循环计数器(就是一个变量)>=<起始值>;<继续循环的条件>;<计数器递增或递减>)
{
<循环体>
break; //打断循环
continue; //终止当前循环,并开始下一个循环
goto <标识符>; //跳转到指定标识符
return; //终止循环,并退出循环所在函数
}
2、do 循环
使用在循环体语句必须被执行一次的情况下。
语法:
do
{
<循环体>
}while <测试条件>;
当测试条件为真时就再次循环。
3、while 循环
使用在循环开始前就需要检查的情况。当测试条件为真时开始或继续循环。
while <测试条件>
{
<循环体>
}
终止循环的语句如上所示。
4、foreach 循环
对集合内对象的遍历,最好的办法就是用foreach。
foreach( 元素类型 e in 集合变量 )
{
// 每次循环e都代表集合变量中不同的元素。
// 当集合中所有元素都循环过之后就退出循环。
}