c#进阶(3)执行流控制

程序的执行不只是根据代码的先后顺序,可以使用条件控制语句和循环语句对代码的执行加以控制

条件控制语句

根据条件 来判断是否执行相应的代码 关键字:有 if,switch

if

if和else和配合起来会使用 if 后面是个小括号,小括号里面是要判断的特定的条件,条件结果是bool类型。紧跟着条件结果为true的时候要执行的代码,如果是多行代码需要使用大括号{}括起来。如果条件结果是false,则执行其后紧跟着的else后面的代码,同样如果是多行代码需要用大括号括起来 else后面也可以继续加if判断 代码示例:

int i = 1;
if (i > 0)
{
    Console.WriteLine("i大于0");
}
else
{
    Console.WriteLine("i不大于0");
}

执行结果: i不大于0

//int i = 1;
int i = -1;
if (i > 0)
{
    Console.WriteLine("i大于0");
}
else
{
    Console.WriteLine("i不大于0");
}

执行结果: i大于0

switch

switch和case一起使用 当在一组互斥的分支中需要选择一个执行的时候使用。但switch参数里的值等于case后面的值的时候,执行case的代码 代码示例:

int i = -1;
switch (i)
{
    case 0:
        Console.WriteLine("当前i为0");
        break;
    case 1:
        Console.WriteLine("当前i为1");
        break;
    case -1:
        Console.WriteLine("当前i为-1");
        break;
    default:
        break;
}

执行结果: 当前i为-1  

循环语句

是代码在满足了一定的条件可以重复的执行的关键语句 主要有:for、foreach、while、do… while

for

先来看个for语句执行的经典的例子

for (int i = 0; i < 3; i++)
{
    Console.WriteLine(i.ToString());
}

执行结果: 0 1 2   其中代码中 a. int i=0是第一次执行要运行的代码 b. i<10是迭代执行的时候需要判断的条件,如果这个条件结果不是true,for语句将执行结束 c. i++ 是每次循环执行的时候要计算的表达式 d. Console.WriteLine(i.ToString()); 是需要循环执行的代码 代码执行的顺序是 a->b->d->c->b->d->c->b->d->c->b(此时i=3 已经不满足i<3了 迭代结束)

foreach

与for相比foreach不需要那么繁琐 示例代码:

string[] strInfo = new string[] { "你好", "这里是", "http://yahui.wang" };
foreach (string item in strInfo)
{
    Console.WriteLine(item);
}

执行结果: 你好 这里是 http://yahui.wang 可以看出foreach遍历了一个集合,取到集合里所有的单元,并且在循环语句中使用这个单元

while

如果while里的表达式如果条件满足,将会执行while后大括号里的代码,条件不满足的时候跳出执行 代码示例:

  int value = 0;
while (value<2)
{
    Console.WriteLine("我执行了一次");
    value++;
}

执行结果: 我执行了一次 我执行了一次

do … while

do while相当于while的另一个版本 区别在于先执行do后面大括号的代码 在进行while判断,也就是说 do后面大括号里的代码必定会执行一编 代码示例:

do
{
    Console.WriteLine("我执行了一次");
} while (false)

  执行结果: 我执行了一次

跳转语句

在代码执行的过程中跳到另一行代码执行或者跳出当前循环,结束当前代码段执行等起跳转作用的语句,包括:goto、break、continue、return、

goto

从示例中学习

    goto label;
    Console.WriteLine("世界");
label:
    Console.WriteLine("你好");

执行结果: 你好 说明:其中label:是一个名为label的标签;后面的代码是标记的代码,执行goto label的时候直接跳转到了label标记代码,中间的  Console.WriteLine(“世界”) 没有被执行。 goto不能跳转到循环关键字的代码块中,也不能跳出try catch 的finally代码块 但是在实际使用中,goto的口碑并不怎么好。不建议经常使用。

break

break可以跳出switch里的单个case ,也可以跳出for、foreach、while、do…while循环  

continue

continue是跳出此次循环,进入下个循环。在for、foreach、while、do…while中使用。  

return

return结束一个函数的执行,给出一个函数的返回值,当一个函数没有返回值的时候 return只做结束当前函数使用   本文代码地址:https://github.com/yahue/JustDoIt-CSharp/tree/master/0003_Source/0003_Source