C# 中的那些流程控制

  在我们学习编程之初,就已经掌握了程序的流程控制,也能够明确的知道,程序的流程控制可以分为分支结构、循环结构、顺序结构等。同样,在 C# 中也存在着许多的程序流程控制结构,下面将细细讲解及演示。

if-else 分支语句

  分支语句 if-else 在编程中普遍存在、及其常见,使用方式包括 ifif-elseif-else-if... 多种形式。
  if 结构: 当条件判断成立的时候执行程序指令,条件不满足时直接向下执行。
开始 判断条件1 程序指令1 结束 Yes No
  Code 示例如下:

int a = 5;
int b = 3;
if (a >= b)
{
    a += b;
}

  if- else结构: 当条件判断成立的时候执行程序指令,条件不满足时直接向下执行。
开始 判断条件1 程序指令1 结束 Yes No 程序指令2
  Code 示例如下:

int a = 5;
int b = 3;
if (a >= b)
{
    a += b;
}
else
{
    a -= b;
}

  if- else-if…结构: 当条件判断成立的时候执行程序指令,条件不满足时直接向下执行。
开始 判断条件1 程序指令1 结束 Yes No 判断条件2 程序指令2 Yes
  Code 示例如下:

int a = 5;
int b = 3;
if (a > b)
{
    a += b;
}
else if (b >= a)
{
    b -= a;
}

switch 分支语句

  switch 可以实现多分支语句的实现。
开始 判断条件1 判断条件2 判断条件3 程序指令1 程序指令2 程序指令3 程序指令4 结束 Yes Yes Yes No No No
  Code 示例如下:

string readStr = Console.ReadLine();
switch (readStr)
{
    case "1":
        readStr = "您的输入:一";
        break;
    case "2":
        readStr = "您的输入:二";
        break;
    case "3":
        readStr = "您的输入:三";
        break;
    default:
        readStr = $"您的输入:{readStr}";
        break;
}

  C# 提供了一个语法糖1switch 还可以优化为以下形式:

string readStr = Console.ReadLine();
readStr = readStr switch
{
    "1" => "您的输入:一",
    "2" => "您的输入:二",
    "3" => "您的输入:三",
    _ => $"您的输入:{readStr}",
};

分支语句之三目运算符 ? :

  这种运算符称为三目运算符。Code 演示如下:

int a = 5;
int b = 3;
int c;
// 即 求出 a 和 b 之间的最大值,
c = a >= b ? a : b;

迭代语句 while

  迭代语句 又称为循环语句, while 循环也可以称为当型循环,也就是说当条件满足的情况下继续执行循环体,当条件不满足的情况下将结束循环体。
开始 判断条件 循环体指令 结束 Yes No
  Code 示例如下:

int i = 5;
while (i >= 0)
{
    Console.WriteLine(i--);
}

迭代语句 do-while

   do-while 循环也可以称为直到型循环,也就是说先执行循环体,而后判断条件是否满足,当条件满足的情况下继续执行循环体,当条件不满足的情况下将结束循环体。
开始 结束 循环体指令 判断条件 Yes No
  Code 示例如下:

int i = 5;
do
{
    Console.WriteLine(i--);
} while (i >= 0);

迭代语句 for

  for 循环。以下案例为打印出九九乘法表,由案例可看出可以循环嵌套,并且索引号也被使用。
开始 int i=1 i < 10 int j=1 j<= i Console.Write($"{j}×{i}={j*i}\t"); j++ Yes Console.WriteLine(); No i++ Yes 结束 No

for (int i = 1; i < 10; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write($"{j}×{i}={j*i}\t");
    }
    Console.WriteLine();
}

迭代语句 foreach

  当对某一个对象进行遍历的时候,如果只关注遍历的项,而不关注每一项的索引,那么可以选择 foreach 循环,但是具体的时候还是根据个人的使用习惯即编码风格来,也并不是具有一定之规,原则是尽可能从优。

List<string> names = new List<string>()
{
    "张三","李四","王二","小红","小明"
};
foreach (var name in names)
{
    Console.WriteLine(name);
}

跳转语句

跳转语句之 break

  通常 break 在循环体及 switch 中配合使用,旨在结束当前循环或 switch 的作用。

int i = 5;
while (i >= 0)
{
    Console.WriteLine(i--);
    if (i == 2) break; // 打印出5、4、3后就退出循环
}

跳转语句之 continue

  continue 通常配合循环体来进行使用,旨在结束当前循环,但不退出循环体,进入下一次的循环。

int i = 5;
while (i >= 0)
{
    i--;
    if (i == 2) continue;
    Console.WriteLine(i); // 不会打印出 2
}

跳转语句之 return

  return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由 return 后面的参数指定。 return 通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

class Program
{
    static void Main(string[] args)
    {
        Funcs();
        Console.ReadLine();
    }

    private static void Funcs()
    {
        Console.WriteLine("第一条打印数据");
        return;// 在当前方法中,return 以下的代码将不被执行。
        Console.WriteLine("第二条打印数据");
    }
}

跳转语句之 goto

  说起 goto 语句其实是挺尴尬的,不管是教程还是文档,多少都会介绍以下 goto 语句,但却很多都会带上一句:尽量少用 ,所以至今我都没有用过,同时在工作中也没有见到谁用过。总之,用的结果就是让程序结构变得混乱,那么这里我就不在进行总结了,具体的话可以参照微软官方文档:goto


  1. 语法糖:就相当于汉语里的成语。即,用更简练的言语表达较复杂的含义。在得到广泛接受的情况之下,可以提升交流的效率。 ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值