C#之流程控制语句

    xiaoxiao2021-04-17  43

    运用程序实例讲解C#的流程控制语句。

    1. 选择语句

    1.1 简单的if语句

    基本形式如下:

    if(条件表达式){ 语句块 }

    eg1:判别年龄输入是否合法。

    Console.Write("请输入您的年龄:"); int age = Convert.ToInt32(Console.ReadLine()); if(age<18||age>100) { age = 25; Console.WriteLine("您输入的年龄不合法,已经默认设置。"); } Console.WriteLine("您输入的年龄是:{0}", age); Console.WriteLine();

    运行结果:

    1.2 if—else语句

    基本形式如下:

    if(条件表达式){ 语句块1; } else{ 语句块2; }

    eg2:判断平闰年。

    Console.Write("请输入一个年份:"); int year = Convert.ToInt32(Console.ReadLine()); if(year%4==0&&year%100!=0||year%400==0) { Console.WriteLine("恭喜您,{0}年是闰年",year); } else { Console.WriteLine("{0}年不是闰年", year); }

    运行结果:

    1.3 if—else if—else多分支语句

    基本形式如下:

    if(条件表达式1) 语句块1; else if(条件表达式2) 语句块2; else if(条件表达式3) 语句块3; ..... else if(条件表达式n) 语句块n; else 语句n+1;

    eg3:星座及其幸运数字。

    Console.Write("请输入您的幸运数字:"); int number =Convert.ToInt32(Console.ReadLine()); if(number==1) { Console.WriteLine("数字1:汹涌的能量——创造与自信(对应塔罗牌——魔术师)"); } else if(number==2) { Console.WriteLine("数字2:二元的能量——合作与平衡(对应塔罗牌——女祭司)"); } else if (number == 3) { Console.WriteLine("数字3:变动中的平衡——表达与敏锐(对应塔罗牌——女皇)"); } else { Console.WriteLine("对不起,暂时没有对这些数字进行说明"); }

    运行结果:

    1.4 switch多分支语句

    基本形式如下:

    switch(表达式) { case 常量1: 语句块1; break; case 常量2: 语句块2; break; ...... case 常量n: 语句块n; break; default: 语句块n+1; break; }

    eg4:星座及其幸运数字。

    Console.Write("请输入您的幸运数字:"); int number = Convert.ToInt32(Console.ReadLine()); string result = ""; switch(number) { case 1: result="数字1:汹涌的能量——创造与自信(对应塔罗牌——魔术师)"; break; case 2: result = "数字2:二元的能量——合作与平衡(对应塔罗牌——女祭司)"; break; case 3: result = "数字3:变动中的平衡——表达与敏锐(对应塔罗牌——女皇)"; break; default: result = "对不起,暂时没有对这些数字进行说明"; break; } Console.WriteLine(result);

    运行结果:

    注意点:

    1.只能对基本数据类型使用switch,这些类型包括int和string等,对于其他类型必须使用if语句。2.case标签必须是常量表达式,如果需要在运行时计算case的值,必须使用if语句。3.case标签必须是唯一的表达式,即不允许两个case有相同的值。

    1.5 嵌套的if语句

    基本形式如下:

    if(条件表达式1){ if(条件表达式2){ 语句块1; } else{ 语句块2; } }else{ if(条件表达式3){ 语句块3; } else{ 语句块4; } }

    eg5:登录系统。

    Console.Write("请输入用户名:"); string userName = Console.ReadLine(); Console.Write("请输入密码:"); string passWord = Console.ReadLine(); if(userName=="admin"&&passWord=="8888") { Console.WriteLine("用户名和密码正确!"); } else{ if(userName!="admin"&&passWord=="8888") { Console.WriteLine("用户名不存在!"); } else{ if (userName == "admin" && passWord != "8888") { Console.WriteLine("密码不正确!"); }else{ Console.WriteLine("用户名和密码都不正确!"); } } }

    运行结果:

    2. 循环语句

    2.1 for循环语句

    基本形式如下:

    for(初始化语句;循环语句;迭代语句) { //语句块 }

    eg6:求1+2+3+……+100之和。

    int i,sum=0; for(i=1;i<101;i++) { sum += i; } Console.WriteLine("总和为:{0}", sum);

    运行结果:5050

    2.2 while语句

    基本形式如下:

    while(条件表达式) { 语句块; }

    eg7:求1+2+3+……+100之和。

    int i=1,sum=0; while(i<101) { sum += i; i++; } Console.WriteLine("总和为:{0}", sum);

    运行结果:5050

    2.3 do……while语句

    基本形式如下:

    do { 语句块; }while(条件表达式);

    eg8:求1+2+3+……+100之和。

    int i=1,sum=0; do { sum += i; i++; } while (i < 101); Console.WriteLine("总和为:{0}", sum);

    运行结果:5050

    注意点: while与do……while的执行顺序,while先判后执行,do……while先执行后判。

    2.4 foreach语句

    基本形式如下:

    for(var item in collection) { 语句块; }

    eg9:文字分行单独显示。

    Console.WriteLine("请随意输入,我们将会为您单个显示:"); string content = Console.ReadLine(); foreach(char c in content) { Console.WriteLine(c); }

    运行结果:

    2.5 循环语句嵌套

    eg10:输出菱形

    Console.Write("请输入要打印的菱形行数:"); int row = Convert.ToInt32(Console.ReadLine()); row = row % 2 == 0 ? row + 1 : row; //正三角形的行数,将其转换为奇数层 for(int i=1;i<=row;i+=2) //打印正三角形 { for(int j=1;j<=row-i;j++) { Console.Write(" "); } for(int k=1;k<=2*i-1;k++) { Console.Write("*"); } Console.WriteLine(); } for(int i=row-1;i>=1;i-=2) //打印倒三角形 { for(int j=0;j<row-i;j++) { Console.Write(" "); } for (int k = 0; k <2 * i - 1; k++) { Console.Write("*"); } Console.WriteLine(); }

    运行结果:

    3. 跳转语句

    3.1 break跳转语句

    eg11:

    int i = 0; while(i<10){ Console.WriteLine("i={0}", i); i++; if(i==7) { break; } Console.WriteLine("自增以后的i={0}", i); } Console.WriteLine("已经输出完毕");

    运行结果:

    break终止循环

    3.2 continue跳转语句

    eg12:将eg11中的break换成continue

    int i = 0; while(i<10){ Console.WriteLine("i={0}", i); i++; if(i==7) { continue; } Console.WriteLine("自增以后的i={0}", i); } Console.WriteLine("已经输出完毕");

    运行结果:

    continue让程序直接跳过后面的语句,进入下一次循环

    3.3 return跳转语句

    eg13:将eg11中的break换成return

    int i = 0; while(i<10){ Console.WriteLine("i={0}", i); i++; if(i==7) { return; } Console.WriteLine("自增以后的i={0}", i); } Console.WriteLine("已经输出完毕");

    运行结果:

    return用于终止函数执行或退出类的方法,并将控制权返回给方法的调用者

    3.4 goto跳转语句

    eg14:猜数字

    int number = 0, count = 1; int rand = new Random().Next(0, 9); First: { Console.WriteLine("请猜测0-9之间随机生成的那个数字:"); number = Convert.ToInt32(Console.ReadLine()); if (number < rand) { count++; Console.WriteLine("您猜的有点小了"); goto First; } else if (number > rand) { count++; Console.WriteLine("您猜的有点大了"); goto First; } else { goto Result; } } Result: { if(count>3) { Console.WriteLine("恭喜您,终于回答正确了!"); } else { Console.WriteLine("好棒,这么快回答出来了!"); } }

    运行结果:

    不建议使用goto语句

    转载请注明原文地址: https://ju.6miu.com/read-674010.html

    最新回复(0)