第九章:循环控制语句


本章目标

  1. 掌握break关键字的使用
  2. 掌握continue关键字的使用
  3. 掌握goto关键字的使用

本章内容

1、为什么要使用循环控制语句?

1
2
在学习循环时,当循环条件为false时,会终止循环,循环结束。
在使用循环语句时,并不是必须等待循环完成后才能退出循环,我们也可以主动退出循环,C# 为我们提供了 break、continue 和 goto 三种方式来跳出循环,下面就来分别介绍一下。

2、break关键字

  1. 回顾:switch选择结构的语法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    switch(表达式){
    case 常量1:
    代码块1
    break;
    case 常量2:
    代码块2;
    break;
    ....
    default:
    代码块3;
    break;
    }

    在switch中,break关键字是结束选择结构的,它不仅可以用来终止 switch 语句,在循环语句中使用时还可以用来跳出循环,执行循环外的下一条语句。

  2. 作用:

    终止循环,执行循环外的语句。

  3. 流程图:

    img

  4. 【案例】使用 for 循环输出 1~9 之间的数字,当输出到 5 时跳出循环:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    for (int i = 1; i <= 9; i++)
    {
    if (i == 5)
    {
    break;
    }
    Console.Write("{0} ", i);
    }
    Console.ReadLine();

    输出结果:

    1
    1 2 3 4

3、continue关键字

  1. 概述:C# 中 continue 语句的工作原理与 break 语句类似,但是 continue 语句并不会跳出整个循环,而是跳过本次循环继续执行下一次的循环。continue 的执行原理如下图所示。

  2. 作用:

    终止本次循环,进入下一次循环

  3. 执行流程图

    img

  4. 【案例】使用 for 循环输出 1~9 之间的数字,遇到 5 时跳过:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    for (int i = 1; i <= 9; i++)
    {
    if (i == 5)
    {
    continue;
    }
    Console.Write("{0} ", i);
    }
    Console.ReadLine();

    输出结果:

    1
    1 2 3 4 6 7 8 9

    【案例】使用 for 循环输出 1~9 之间的奇数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    for (int i = 1; i <= 9; i++)
    {
    if (i %2==0)
    {
    continue;
    }
    Console.Write("{0} ", i);
    }
    Console.ReadLine();

    输出结果:

    1
    1,3,5,7,9

4、goto关键字

  1. 概述:

    C# 中的 goto 语句也称为跳转语句,使用它可以控制程序跳转到指定的位置执行。不过并不建议在程序中多次使用 goto 语句,因为它会使程序变得更加复杂。

  2. 作用:

    实现代码块的跳转

  3. 语法:

    1
    2
    3
    4
    goto Labels;
    语句块1;
    Labels:
        语句块2;

    想要使用 goto 语句来跳转程序,必须先在想要跳转的位置定义好一个标签(Labels),标签名称的定义和变量名类似,然后使用goto 标签名;即可使程序跳转到指定位置执行。如上面语法中所示,程序会跳过“语句块1”直接执行“语句块2”。

    注意事项:

    提示:goto 语句并不限于在循环中使用,其它的情况也可以使用。但是,goto 语句不能从循环外跳转到循环语句中,而且不能跳出类的范围。

  4. 案例:

    【示例】使用 goto 语句将程序跳转到指定位置执行。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
        int count = 1;
    login:
    Console.WriteLine("请输入用户名");
    string username = Console.ReadLine();
    Console.WriteLine("请输入密码");
    string userpwd = Console.ReadLine();
    if (username == "c.biancheng.net" && userpwd == "123456")
    {
    Console.WriteLine("登录成功");
    }
    else
    {
    count++;
    if (count > 3)
    {
    Console.WriteLine("用户名或密码错误次数过多!退出!");
    }
    else
    {
    Console.WriteLine("用户名或密码错误");
    goto login;//返回login标签处重新输入用户名密码
    }
    }

    Console.ReadLine();

本章总结

  1. break关键字的作用
  2. continue关键字的作用
  3. goto关键字的作用

课后作业

1.循环生成30个随机数(1-100),如果某个随机数既能被3整除也能被5整除,则提示并终止程序,
否则打印这些随机数(需用break)。

2.循环生成30个随机数(1-100),如果这些随机数之和大于1000,则提示并终止程序,
否则打印随机数之和(需用break)。

3.循环生成30个随机数(1-100),如果其是偶数就直接打印,否则继续生成下一个随机数(需用continue)

4.循环生成30个随机数(1-100),如果其是偶数就累加求和,否则继续生成下一个随机数(需用continue)

5.编写程序生成一个(1-100)随机数,如果数字是奇数则继续生成,最终打印这个偶数(需用goto)

6.编写程序生成一个(1-100)随机数,实现猜数游戏,给出相应提示:大了,小了,对了(需用goto)