5. C#条件分支循环语句

目录

一、C#条件判断语句

1、if 语句

2、if else 语句

3、if else if 语句

二、C#分支语句

三、C#循环语句

1、for循环

2、foreach循环

3、while循环

4、do while循环

四、C#跳出循环

1、break

2、continue

3、goto


一、C#条件判断语句

        在 C# 编程中,if 语句主要用于条件判断。C# 中支持多种类型的 if 语句:

  • if 语句;
  • if else 语句;
  • if else if 语句;

1、if 语句

        C# 中的 if 语句用于条件判断。其中包含一个布尔表达式,后面跟随若干要执行的代码。当布尔表达式为真时,后面跟随的代码才会执行。if 语句的语法格式如下:

if (布尔表达式) {
        // 表达式为真时要执行的代码;
}

举例:

int num = 12;
// 使用 if 语句判断一个数字是不是偶数:
if (num % 2 == 0)
{
    Console.WriteLine("{0}是偶数", num);
    Console.ReadKey();
}

2、if else 语句

        C# 的 if else 语句同样用于条件判断。它比 if 语句中多出了一个 else 语句,当布尔表达式为假时,执行 else 语句块中的代码。语法格式如下所示:

if (布尔表达式) {
        // 表达式为真时要执行的代码;
} else {
        // 表达式为假时要执行的代码;
}

举例:

Console.WriteLine("请输入一个数字:");
int num = Convert.ToInt32(Console.ReadLine());
// 使用 if else 语句判断用户输入的数字是奇数还是偶数:
if(num % 2 == 0){
    Console.WriteLine("{0}是偶数", num);
}else{
    Console.WriteLine("{0}是奇数", num);
}
Console.ReadKey();

3、if else if 语句

        C# 的 if else if 语句其实就是一个 if 语句后面跟若干个 else if else 语句。语句中可以包含多个条件表达式,程序会依次判断这些条件表达式。当条件表达式为真时则执行后面语句块中的代码,如果没有为真的条件表达式则执行 else 语句块中的代码,其语法格式如下所示:

if (布尔表达式 1) {
        // 布尔表达式 1 为真时要执行的代码;
} else if (布尔表达式 2) {
        // 布尔表达式 2 为真时要执行的代码;
} else if (布尔表达式 3) {
        // 布尔表达式 3 为真时要执行的代码;
}
...
else {
        // 当所有布尔表达式都为假时要执行的代码;
}

 举例:

Console.WriteLine("请输入学生的成绩:");
int num = Convert.ToInt32(Console.ReadLine());
// 使用 if else if 语句来对学生成绩进行评定:
if (num < 0 || num > 100)
{
    Console.WriteLine("您输入的成绩有误!");
}
else if (num >= 0 && num < 60)
{
    Console.WriteLine("不及格");
}
else if (num >= 60 && num < 70)
{
    Console.WriteLine("及格");
}
else if (num >= 70 && num < 80)
{
    Console.WriteLine("中等");
}
else if (num >= 80 && num < 90)
{
    Console.WriteLine("良好");
}
else if (num >= 90 && num <= 100)
{
    Console.WriteLine("优秀");
}
Console.ReadKey();

二、C#分支语句

        C# 中的 switch 语句类似 if else if 语句,都可以根据表达式执行某个语句块。其语法格式如下:

switch (表达式) {
    case value1:

        // 表达式的值为 value1 时,要执行的代码
        break;
    case value2:

        // 表达式的值为 value2 时,要执行的代码
        break;
    case value3:

        // 表达式的值为 value3 时,要执行的代码
        break;
    ......
    default:

        // 没有与表达式相匹配的值时,要执行的代码
        break;
}

使用 switch 语句时必须遵守以下规则:

  • switch 语句中表达式的值必须是一个整型或者枚举类型
  • 一个 switch 语句可以有任意个 case 语句,每个 case 关键字后面要跟一个与表达式比较的值和一个冒号;
  • case 关键字后面的值必须与 switch 表达式的值具有相同的数据类型,并且必须是一个常量(也可以理解为是一个固定的值,不会随程序的运行发生改变);
  • 当表达式的值等于 case 中的值时,就会执行 case 后面的语句。当遇到 break 关键字时,switch 语句会停止运行,并跳转到 switch 语句以外的下一行代码继续运行;
  • 并不是每一个 case 语句后面都需要包含 break 关键字。如果 case 语句后面没有要执行的代码,则可以不包含 break 关键字,这时程序会继续执行后续的 case 语句,直至遇到 break 关键字为止;
  • C# 不允许从一个 case 语句连续执行到下一个 case 语句,因此如果 case 语句中包含要执行的语句,就必须包含 break 关键字或其他跳转语句;
  • 一个 switch 语句的末尾可以有一个可选的 default(默认选项)。当所有 case 语句都不能与表达式相匹配时则会执行 default 部分中的代码,而且 default 中的 break 语句可以省略;
  • C# 不支持从一个 case 语句跳转到另一个 case 语句。如果要从一个 case 语句跳转到另一个 case 语句的话,可以使用 goto 语句。如goto default;
// 根据输入的成绩来评定成绩的等级:
Console.WriteLine("请输入学生考试的成绩(0~100的整数)");
int points = Convert.ToInt32(Console.ReadLine());
switch (points / 10)
{
    case 10:
        Console.WriteLine("优秀");
        break;
    case 9:
        Console.WriteLine("优秀");
        break;
    case 8:
        Console.WriteLine("良好");
        break;
    case 7:
        Console.WriteLine("及格");
        break;
    case 6:
        Console.WriteLine("及格");
        break;
    default:
        Console.WriteLine("不及格");
        break;
}

三、C#循环语句

        在某些情况下,我们需要重复执行某些代码,这时就需要用到 C# 中的循环语句。C# 中支持 for 循环、foreach 循环、while 循环和 do while 循环等循环语句。

1、for循环

        使用 for 循环可以重复执行一部分代码,而且重复的次数是已知的,其语法格式如下所示:

for (初始化语句; 判断条件; 迭代器) { 
        // 要循环的代码;

备注:

        在某些情况下初始化语句可以省略,只保留后面的分号即可; 

举例: 

// 使用 for 循环输出 0 ~ 9 之间的数:
for (int i = 1; i <= 9; i++)
{
    Console.Write("{0} ", i);
}

 (1)嵌套循环

        在 C# 中,循环语句还可以嵌套使用。也就是说我们可以在一个 for 循环内再嵌套一个或多个 for 循环。

// 使用 for 循环输出一个九九乘法表:
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write("{0} x {1} = {2}  ", j, i, i * j);
    }
    Console.WriteLine();
}

(2)无限循环

        for 循环中,如果判断条件永远不会为假,那么循环将变成无限循环(也叫死循环)。我们在定义循环语句时应尽量避免这种情况的出现。示例代码如下:

for (; ;) 
{ 
     Console.WriteLine("死循环!"); 
}

2、foreach循环

        C# 同样也支持 foreach 循环,使用 foreach 可以遍历数组或者集合对象中的每一个元素,其语法格式如下:

foreach (数据类型 变量名 in 数组或集合对象) {
    // 循环体;
}

        foreach 会在每次循环的过程中,依次从数组或集合对象中取出一个新的元素放到foreach定义的变量中,直到所有元素都成功取出后退出循环。

// 使用 foreach 循环打印数组中的所有元素:
int[] arr = new int[] { 1, 3, 6, 13, 5, 22, 33 };
foreach (int i in arr)
{
    Console.Write("{0} ", i);
}
Console.ReadLine();

3、while循环

        在 C# 中,当迭代次数不确定的情况下,使用 while 循环多次迭代一部分程序。while 循环的语法格式如下所示:

while (表达式) {
        // 要循环的代码;
}

        while 循环的特点是:当表达式的判断结果为假时, while 循环一次也不会执行。另外,与 for 循环相同,while 循环也可以嵌套使用。代码如下:

// 输出九九乘法表:
int i = 1;
while (i <= 9)
{
    int j = 1;
    while (j <= i)
    {
        Console.Write("{0} x {1} = {2}  ", j, i, i * j);
        j++;
    }
    i++;
    Console.WriteLine();
}
Console.ReadLine();

4、do while循环

        在 C# 中,do while 循环同样用于多次迭代一部分程序。它与 for 循环while 循环 不同的是,for 循环 和 while 循环 会在循环开始之前先判断表达式的结果,只有表达式的结果为真时才会开始循环,而 do while 循环会先执行一遍循环体中的代码,然后再判断表达式的结果。也就是说,不论表达式的结果如何,do while 循环至少会执行一次。do while 循环的语法格式如下:

do

{
    // 循环体;
} while (表达式);

举例:

int i = 1;
do
{
    Console.Write("{0} ", i);
    i++;
} while (i <= 9);
Console.ReadLine();

        与 for 循环和 while 循环一样,do while 循环也可以嵌套使用。下面我们来看一下如何使用 do while 循环输出九九乘法表:

int i = 1;
do
{
    int j = 1;
    do
    {
        Console.Write("{0} x {1} = {2}  ", j, i, j * i);
        j++;
    } while (j <= i);
    i++;
    Console.WriteLine();
} while (i <= 9);
Console.ReadLine();

四、C#跳出循环

        在使用循环语句时,我们也可以主动退出循环。C# 为我们提供了 break、continue 和 goto 三种方式来跳出循环。

1、break

        break 语句它不仅可以用来终止 switch 语句,在循环语句中还可以用来跳出循环,执行循环体外的下一条语句。如果是在嵌套循环中使用,例如在内层循环中使用 break 语句,那么程序只会跳出内层循环,并不会影响外层循环的执行。

// 使用 for 循环输出 1~9 之间的数字,当输出到 5 时跳出循环:
for (int i = 1; i <= 9; i++)
{
    if (i == 5)
    {
        break;
    }
    Console.Write("{0} ", i);
}
Console.ReadLine();

2、continue

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

// 使用 for 循环输出 1~9 之间的数字,遇到 5 时跳过:
for (int i = 1; i <= 9; i++)
{
    if (i == 5)
    {
        continue;
    }
    Console.Write("{0} ", i);
}
Console.ReadLine();

3、goto

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

        goto 语句的语法格式如下所示:

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

说明:

        程序会跳过“语句块1”直接执行“语句块2”。

        想要使用 goto 语句来跳转程序,必须先在想要跳转的位置定义好一个标签(Labels),标签名称的定义和变量名类似,然后使用goto 标签名;即可使程序跳转到指定位置执行。

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

// 使用 goto 语句将程序跳转到指定位置执行:
int count = 1;
login:
    Console.WriteLine("请输入用户名:");
    string username = Console.ReadLine();
    Console.WriteLine("请输入密码:");
    string userpwd = Console.ReadLine();
if (username == "jerry" && userpwd == "123")
{
    Console.WriteLine("登录成功");
}
else
{
    count++;
    if (count > 5)
    {
        Console.WriteLine("用户名或密码错误次数过多!");
    }
    else
    {
        Console.WriteLine("用户名或密码错误!");
        // 返回login标签处重新输入用户名和密码
        goto login;
    }
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值