您的位置: 网站首页 > 程序开发 > C#程序设计 > 第2章 C#程序设计基础 > 【2.4 流程控制】

2.4 流程控制

 

2.4 

C#可以使用流程控制语句进行语句的跳转控制。C#的流程控制语句主要包括分支语句和循环语句。其中,分支语句主要包括if语句和switch语句;循环语句主要包括while语句和for语句。

2.4.1  使用if语句实现分支

if语句包括几种不同的语法形式,其中最简单的形式只包含一个if关键字和被执行代码,其形式如下:

if (myBoolVar)

{

   //被执行语句

}

此类语句当myBoolVartrue时将执行大括号之内的语句。另外一种稍为复杂的语句附加了一个else关键字,其形式如下:

if (myBoolVar)

{

    //被执行语句1

}

else

{

    //被执行语句2

}

此类语句当myBoolVartrue时将执行大括号之内的被执行语句1,当myBoolVarfalse时,将执行大括号之内的被执行语句2

通过对if语句的嵌套组合可以实现非常复杂的语句跳转。如下的代码实现了一个简单的语句跳转:

if (myBoolVar1)

{

    //被执行语句1

}

else

{

    if (myBoolVar2)

    {

        //被执行语句2

    }

    else

    {

        //被执行语句3

    }

}

上述语句根据控制变量myBoolVar1myBoolVar2的取值不同,将执行不同的被执行语句,其规则与简单的if语句相同。下面介绍一个实例,演示if语句的用法。

1.目的说明

创建一个Windows控制台应用程序,演示C#if分支语句的使用方法

2.实现步骤

1)启动Visual Studio 2005

2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。

3)在“项目类型”树形列表中选择Visual C#Windows选项后,在“模板”列表中选择“控制台应用程序”选项。

4)在“名称”文本框中输入项目的名称,此处为“Condition1”。

5)单击“确定”按钮,创建项目。

6Visual Studio 2005已经默认添加了几个文件,并自动打开其中的一个文件Progr-

am.cs。修改该文件中的Main方法内容如下:

static void Main(string[] args)

{

    //定义3个整数类型的变量

    int a = 14;

    int b = 32;

    int c = 16;

 

    //通过嵌套if语句选择出abc变量中的最大值

    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);

        }

    }

}

3.运行结果

Ctrl+F5组合键运行程序,运行结果如图2-19所示。

2-19  运行结果

4.代码分析

代码通过3if语句的组合使用,选择出了3个整型变量的最大值,可以使用不同的整数尝试该实例。

2.4.2  使用switch语句实现分支

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语句进行四则运算。

1.目的说明

创建一个Windows控制台应用程序,演示C#switch分支语句的使用方法

2.实现步骤

1)启动Visual Studio 2005

2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。

3)在“项目类型”树形列表中选择Visual C#Windows选项后,在“模板”列表中选择“控制台应用程序”选项。

4)在“名称”文本框中输入项目的名称,此处为“Condition2”。

5)单击“确定”按钮,创建项目。

6Visual 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;

    }

}

3.运行结果

Ctrl+F5组合键运行程序,运行结果如图2-20所示。

2-20  运行结果

4.代码分析

1ReadLine方法:ReadLine方法用于读入用户在控制台中输入的字符。按Enter键时,用户的输入将会被存储到字符串变量a中。

2switch语句还有一些规定:任意两个case中的条件不能相同;任意一个case部分的语句中都必须存在break语句;不允许执行完一个case语句后,再执行第二个case语句,除非这个case部分为空,没有任何语句。

2.4.3  使用while语句实现循环

循环语句可以根据设定的次数持续地执行某条或某些语句。while循环语句一种最简单的形式可以用如下的代码表示:

while(condition)

{

    //语句1

}

conditiontrue时,语句1将被持续执行。while循环还可以与do关键字组合使用,构成另外一种循环语句,其形式如下:

do

{

    //语句2;

} while (condition);

conditiontrue时,语句2将被持续执行。上述两种形式的循环语句存在执行次数上的差别,其中第二种循环语句无论conditon是否为true,语句2将至少被执行一次。下面介绍一个实例,演示两种循环的用法与区别。

1.目的说明

创建一个Windows控制台应用程序,演示C#while循环语句的使用方法

2.实现步骤

1)启动Visual Studio 2005

2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。

3)在“项目类型”树形列表中选择Visual C#Windows选项后,在“模板”列表中选择“控制台应用程序”选项。

4)在“名称”文本框中输入项目的名称,此处为“Repeat1”。

5)单击“确定”按钮,创建项目。

6Visual 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());

    }

}

3.运行结果

Ctrl+F5组合键运行程序,运行结果如图2-21所示。

2-21  运行结果

4.代码分析

从运行结果可以看出,第二次使用ab为条件的循环中while循环没有被执行,而do循环被执行了一次,这里显示了do循环和while循环的区别。

2.4.4  使用for语句实现循环

for循环重复执行一个语句或语句块,直到指定的表达式计算为false值。for循环对于迭代数组和顺序处理非常方便。for循环的示例如下:

for (int i = 0; i < 5;i++)

{

    //被执行语句

}

for后面的小括号中的内容被分号分为3个部分,分别是初始化部分、中止条件和自增运算。如上例,初始化一整数为0;当此整数小于5时执行大括号中的内容;每次循环的最后执行i++操作,使i递增1。下面介绍一个实例,使用for循环计算一系列5的倍数。

1.目的说明

创建一个Windows控制台应用程序,演示C#for循环语句的使用方法

2.实现步骤

1)启动Visual Studio 2005

2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。

3)在“项目类型”树形列表中选择Visual C#Windows选项后,在“模板”列表中选择“控制台应用程序”选项。

4)在“名称”文本框中输入项目的名称,此处为“Repeat2”。

5)单击“确定”按钮,创建项目。

6Visual 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 ) ;

    }

}

3.运行结果

Ctrl+F5组合键运行程序,运行结果如图2-22所示。

2-22  运行结果

4.代码分析

从运行结果可以看出,for循环一共执行了5次,每次求得了5的倍数并输出。

2.4.5  使用break/continue控制循环

break关键字用于跳出到循环外部。通过在switch语句中接触,读者应该对其有一定的了解。continue关键字用于跳过当前的运行并进入下一次运行,而不跳出循环。下面介绍一个实例,演示break关键字和continue关键字的用法。

1.目的说明

创建一个Windows控制台应用程序,演示C#for循环语句的使用方法

2.实现步骤

1)启动Visual Studio 2005

2)选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。

3)在“项目类型”树形列表中选择Visual C#Windows选项后,在“模板”列表中选择“控制台应用程序”选项。

4)在“名称”文本框中输入项目的名称,此处为“Repeat3”。

5)单击“确定”按钮,创建项目。

6Visual 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++;

    }

}

3.运行结果

Ctrl+F5组合键运行程序,运行结果如图2-23所示。

2-23  运行结果

4.代码分析

从运行结果可以看出,循环执行时,当a2,则直接进行下一步循环,没有输出a的值,当a4时跳出了循环。这两次特殊的循环分别代表了continuebreak的用法。