C#可以使用流程控制语句进行语句的跳转控制。C#的流程控制语句主要包括分支语句和循环语句。其中,分支语句主要包括if语句和switch语句;循环语句主要包括while语句和for语句。
if语句包括几种不同的语法形式,其中最简单的形式只包含一个if关键字和被执行代码,其形式如下:
if (myBoolVar)
{
//被执行语句
}
此类语句当myBoolVar为true时将执行大括号之内的语句。另外一种稍为复杂的语句附加了一个else关键字,其形式如下:
if (myBoolVar)
{
//被执行语句1
}
else
{
//被执行语句2
}
此类语句当myBoolVar为true时将执行大括号之内的被执行语句1,当myBoolVar为false时,将执行大括号之内的被执行语句2。
通过对if语句的嵌套组合可以实现非常复杂的语句跳转。如下的代码实现了一个简单的语句跳转:
if (myBoolVar1)
{
//被执行语句1
}
else
{
if (myBoolVar2)
{
//被执行语句2
}
else
{
//被执行语句3
}
}
上述语句根据控制变量myBoolVar1和myBoolVar2的取值不同,将执行不同的被执行语句,其规则与简单的if语句相同。下面介绍一个实例,演示if语句的用法。
创建一个Windows控制台应用程序,演示C#中if分支语句的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Condition1”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
//定义3个整数类型的变量
int a = 14;
int b = 32;
int c = 16;
//通过嵌套if语句选择出a、b、c变量中的最大值
if (a > b)
{
if (a > c)
{
Console.WriteLine("最大值为{0}。", a);
}
else
{
Console.WriteLine("最大值为{0}。", c);
}
}
else
{
if (b > c)
{
Console.WriteLine("最大值为{0}。", b);
}
else
{
Console.WriteLine("最大值为{0}。", c);
}
}
}
按Ctrl+F5组合键运行程序,运行结果如图2-19所示。
图2-19 运行结果
代码通过3个if语句的组合使用,选择出了3个整型变量的最大值,可以使用不同的整数尝试该实例。
switch语句是另一种实现分支的方法。当分支非常多时,可以考虑使用switch语句。switch语句的格式如下:
switch (myVar)
{
case condition1:
//语句1;
break;
case condition2:
//语句2;
break;
case condition3:
//语句3;
break;
default:
//语句4;
break;
}
即当myVar的值与condition1匹配时,执行语句1;当与condition2匹配时,执行语句2;当与condition3匹配时,执行语句3;当都不匹配时,执行语句4。使用switch语句判断多个条件时,可以避免使用多个if语句的嵌套和组合,使代码清晰易读。
下面介绍一个实例,演示使用switch语句进行四则运算。
创建一个Windows控制台应用程序,演示C#中switch分支语句的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Condition2”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
//定义两个操作数
int x = 10;
int y = 5;
//使用ReadLine语句读入用户的输入
Console.WriteLine("请输入一个四则运算符:");
string a = Console.ReadLine();
//根据用户不同的输入进行不同的计算
switch (a)
{
case "+":
Console.WriteLine(x + y);
break;
case "-":
Console.WriteLine(x - y);
break;
case "*":
Console.WriteLine(x * y);
break;
case "/":
Console.WriteLine(x / y);
break;
default:
Console.WriteLine("输入的字符串不是四则运算符!");
break;
}
}
按Ctrl+F5组合键运行程序,运行结果如图2-20所示。
图2-20 运行结果
(1)ReadLine方法:ReadLine方法用于读入用户在控制台中输入的字符。按Enter键时,用户的输入将会被存储到字符串变量a中。
(2)switch语句还有一些规定:任意两个case中的条件不能相同;任意一个case部分的语句中都必须存在break语句;不允许执行完一个case语句后,再执行第二个case语句,除非这个case部分为空,没有任何语句。
循环语句可以根据设定的次数持续地执行某条或某些语句。while循环语句一种最简单的形式可以用如下的代码表示:
while(condition)
{
//语句1
}
当condition为true时,语句1将被持续执行。while循环还可以与do关键字组合使用,构成另外一种循环语句,其形式如下:
do
{
//语句2;
} while (condition);
当condition为true时,语句2将被持续执行。上述两种形式的循环语句存在执行次数上的差别,其中第二种循环语句无论conditon是否为true,语句2将至少被执行一次。下面介绍一个实例,演示两种循环的用法与区别。
创建一个Windows控制台应用程序,演示C#中while循环语句的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Repeat1”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Program.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
int x = 0;
int y = 0;
//该do循环将被执行5次
do
{
x++;
Console.WriteLine("do循环:{0}", x.ToString());
}
while (x < 5);
//该while循环将被执行5次
while (y < 5)
{
y++;
Console.WriteLine("while循环:{0}", y.ToString());
}
int a = 5;
int b = 5;
//该do循环将会被执行一次
do
{
a++;
Console.WriteLine("do循环:{0}", a.ToString());
}
while (a < 5);
//该while循环将不会被执行
while (b < 5)
{
b++;
Console.WriteLine("while循环:{0}", b.ToString());
}
}
按Ctrl+F5组合键运行程序,运行结果如图2-21所示。
图2-21 运行结果
从运行结果可以看出,第二次使用a和b为条件的循环中while循环没有被执行,而do循环被执行了一次,这里显示了do循环和while循环的区别。
for循环重复执行一个语句或语句块,直到指定的表达式计算为false值。for循环对于迭代数组和顺序处理非常方便。for循环的示例如下:
for (int i = 0; i < 5;i++)
{
//被执行语句
}
for后面的小括号中的内容被分号分为3个部分,分别是初始化部分、中止条件和自增运算。如上例,初始化一整数为0;当此整数小于5时执行大括号中的内容;每次循环的最后执行i++操作,使i递增1。下面介绍一个实例,使用for循环计算一系列5的倍数。
创建一个Windows控制台应用程序,演示C#中for循环语句的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Repeat2”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
int x = 0;
//计算5的倍数,并输出。
for (int i = 0; i < 5; i++)
{
x = 5 * ( i + 1 );
Console.WriteLine( x ) ;
}
}
按Ctrl+F5组合键运行程序,运行结果如图2-22所示。
图2-22 运行结果
从运行结果可以看出,for循环一共执行了5次,每次求得了5的倍数并输出。
break关键字用于跳出到循环外部。通过在switch语句中接触,读者应该对其有一定的了解。continue关键字用于跳过当前的运行并进入下一次运行,而不跳出循环。下面介绍一个实例,演示break关键字和continue关键字的用法。
创建一个Windows控制台应用程序,演示C#中for循环语句的使用方法。
(1)启动Visual Studio 2005。
(2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。
(3)在“项目类型”树形列表中选择Visual C#→Windows选项后,在“模板”列表中选择“控制台应用程序”选项。
(4)在“名称”文本框中输入项目的名称,此处为“Repeat3”。
(5)单击“确定”按钮,创建项目。
(6)Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-
am.cs。修改该文件中的Main方法内容如下:
static void Main(string[] args)
{
int a = 0;
//创建一个while循环,只要a小于5,就会执行
while (a < 5)
{
//当a等于2时,使得a自增1
if (a == 2)
{
a++;
continue;
}
//当a等于4时,跳出循环
else if (a == 4)
{
break;
}
Console.WriteLine("a的值为{0}。", a);
a++;
}
}
按Ctrl+F5组合键运行程序,运行结果如图2-23所示。
图2-23 运行结果
从运行结果可以看出,循环执行时,当a为2,则直接进行下一步循环,没有输出a的值,当a为4时跳出了循环。这两次特殊的循环分别代表了continue和break的用法。