C#中常用流程控制语句、跳转语句示例及汇总

if语句:

if(布尔表达式)
布尔表达式为true时,要执行的代码块;

  程序执行时首先检测布尔表达式的值,如果布尔表达式的值为true,则执行if语句中的代码,执行完毕后,将继续if语句下面的代码。如果布尔表达式的值为false,则直接跳出if语句并执行后面的代码。

  if语句可以配合else关键字一起使用,格式如下:

if(布尔表达式)
{
语句1;
}
else
{
语句2;
}

  如果布尔表达式的值为true,首先执行语句1,然后执行语句2;反之,如果布尔表达式的值为false,将首先执行语句2,再执行语句1。

  如果有多个条件需要判断,可以通过添加else if语句。

示例(C#):

  接受用户输入的三个数字,通过if语句判断其中的最大值和最小值数并输出到控制台。

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int max, min;
Console.WriteLine(
"请输入第一个数字:");
int a = int.Parse(Console.ReadLine());
Console.WriteLine(
"请输入第二个数字:");
int b = int.Parse(Console.ReadLine());
Console.WriteLine(
"请输入第三个数字:");
int c = int.Parse(Console.ReadLine());

if (a > b)
{
max
= a;
min
= b;
}
else
{
max
= b;
min
= a;
}
if (max < c)
{
max
= c;
}
else if (min > c)
{
min
= c;
}
Console.WriteLine(
"最大的数字是:{0},最小的数字是:{1}",max,min);
Console.ReadKey();
}
}
}

  程序说明:首先声明了两个变量分别用来表示最大值和最小值,获得用户输入的三个数字被存放在变量a/b/c中,先判断了a和b的最大值和最小值,程序的最后再使用else if语句将前面判定的结果和c进行比较,确定出最大值和最小值并输出。

 switch语句:

  

switch(控制表达式)
{
case 测试值1:
当控制表达式的值等于测试值1时的执行代码;
break;
case 测试值2:
当控制表达式的值等于测试值2时的执行代码;
break;
case 测试值3:
当控制表达式的值等于测试值3时的执行代码;
break;
......(你懂得)
case 测试值n:
当控制表达式的值等于测试值n时的执行代码;
break;
default:
当控制表达式的值不等于以上任何测试值时的执行代码;
break;
}

  在switch语句的开始,首先计算控制表达式的值,如果改值符合某个case语句中定于的“测试值”就跳转到该case内的语句执行,当控制表达式的值没有任何匹配的“测试值”时,则执行default内的代码,执行完后推出switch语句,继续执行下面的代码。其中,测试值只能是某个整数类型或字符类型。并且各个测试值不能相同。default是可选的,没有default语句时,如果控制表达式的值!=任何“测试值”,程序一样会推出switch而执行后面的代码。 

示例(C#):

  使用switch语句完成一个简单的计算器程序,用户输入两个数字,用四则运算符计算结果并显示在控制台上。

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(
"请输入第一个数字:");
var a
= Convert.ToInt32(Console.ReadLine());
Console.WriteLine(
"请输入运算类型:");
var b
= char.Parse(Console.ReadLine());
Console.WriteLine(
"请输入第二个数字:");
var c
= int.Parse(Console.ReadLine());

switch (b)
{
case '+':
Console.WriteLine(
"计算结果为:{0}",a + c);
Console.ReadKey();
break;
case '-':
Console.WriteLine(
"计算结果为:{0}", a - c);
Console.ReadKey();
break;
case '*':
Console.WriteLine(
"计算结果为:{0}", a * c);
Console.ReadKey();
break;
case '/':
Console.WriteLine(
"计算结果为:{0}", a / c);
Console.ReadKey();
break;
default :
Console.WriteLine(
"运算类型输入错误!");
Console.ReadKey();
break;
}
}
}
}

  变量a和变量c用来接收用户输入的两个数字,变量b用来接收运算类型。利用switch语句,判断用户输入的运算符号,在控制台显示相应的运算成果。其中default用来显示如果运算符号输入有误的相关信息。

布循环语句: 

  do while语句:

do
{
循环代码;
}
while(布尔表达式)

  程序首先执行一次循环代码,然后判断布尔表达式的值,如果值为true就从do语句位置继续执行循环代码,直到布尔表达式的值flase。所以,无论布尔表达式的值是true还是false,循环代码至少会执行一次。

  while语句:

while(布尔表达式)
{
循环代码;
}

  while语句和do while语句有一个重要的区别:while循环中的布尔表达式是在循环开始时进行,而do while循环是在最后用来检测,do while的循环至少要执行一次,有木有!如果测试布尔表达式的结果为false则直接跳出循环执行后面的代码。

示例(C#):

  接收用户输入的数值,当数值小于10时,将打印出从输入值到10之间的所有数字之和,分别使用switch和do swtich实现。

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var sum
= 0;
Console.WriteLine(
"请输入数字:");
var i
= int.Parse(Console.ReadLine());
while (i <= 10)
{
sum
= sum + i;
i
++;
}
Console.WriteLine(
"使用while语句获得的结果等于{0}", sum);

var sum1
= 0;
Console.WriteLine(
"请输入数字:");
var a
= int.Parse(Console.ReadLine());
do
{
sum1
= sum1 + a;
a
++;
}
while (a <= 10);
{
Console.WriteLine(
"使用do-while语句获得的结果等于{0}",sum1);
Console.ReadKey();
}
}
}
}

  声明变量sum用来计算数值总和,声明变量i用来获取用户输入的数值。首先通过while语句获得输入数值到10之间的所有数字之和。再使用do while语句实现上面语句同样的功能。

for语句:

for(循环变量初始化;循环条件;循环操作)
{
循环代码;
}

  for循环可以执行指定的次数,并维护它自己的计数器。for语句首先计算一系列初始化表达式的值。接下来当条件成立时,执行其循环语句,之和计算重复表达式的值,并根据其值决定下一步的操作。

示例(C#):

  接收用户输入的一个正整数,然后程序会计算这个数的阶乘并输出,接着用户可以再输入另一个整数计算它的阶乘,知道输入一个负数时,程序终止。

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int a = 0;
do
{
Console.WriteLine(
"输入一个整数:");
a
= int.Parse(Console.ReadLine());
long b = 1;
for (int i = 1; i <= a; i++)
{
b
*= i;
}
Console.WriteLine(b);
}
while (a >= 0);
}
}
}

  变量a接收用户输入的数值, 变量b通过嵌套的for循环计算用户输入值的阶乘,知道输入一个负数为止。

foreach语句:

foreach(类型 标识符 in 表达式)
{
循环代码;
}

  foreach语句括号中的类型和标识符用来声明该语句的循环变量,标识符既循环变量的名称。循环变量相当于一个只读的局部变量,它的作用域在整个循环语句内,在foreach语句执行过程中,重复变量代表着当前操作针对的集合中相关元素。

示例(C#): 

  通过foreach循环找出字符数组中0和1的个数并输入。

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int a = 0, b = 0;
char[] c = new char[] { '0','0','1','1','1','1','0','0','1'};
foreach (char e in c)
{
if (e == '0')
a
++;
else
b
++;
}
Console.WriteLine(c);
Console.WriteLine(
"0的个数为:{0},1的个数为{1}",a,b);
Console.ReadKey();
}
}
}

  程序的开始初始化了两个变量a和b,分别用来表示0和1的个数。之后声明一个字符类型的数组,用foreach循环判断字符格式,如果遍历到0,则将a的值+1,否则就将b的值+1,最后显示a和b的结果到控制台。

跳转语句: 

  break语句:终止并跳出循环体。

  continue语句:终止当前循环,重新开始一个新的循环。

  goto语句:跳转到指定位置(真的不建议使用)。

  return语句:跳出循环及其包含的函数。

  throw语句:抛出一个异常。

break语句示例:

View Code
for (int i = 1; i < 100; i++)
{
if (i == 5)
{
break;
}
Console.WriteLine(i);
}
Console.ReadKey();

  使用for循环遍历1-100,其中通过if语句判定如果数值遍历到5,则跳出循环。控制台输出结果为:1,2,3,4。 

continue语句示例:

View Code
for (int i = 1; i < 100; i++)
{
if (i % 2 != 0)
{
continue;

}
Console.WriteLine(i);
}
Console.ReadKey();

  使用for循环遍历1-100,通过if语句判定,如果遍历到奇数则终止当前循环,重新开始一个新的循环。控制台输出结果为1-100之间所有的偶数。 

posted on 2011-08-29 00:37  wangjy  阅读(3677)  评论(0编辑  收藏  举报