第一种分支语句
if(bool的表达式) //可以直接结束
{
代码
}
else if(bool的表达式) //可以直接结束
{
代码
}
else //否则,是最后的结束
{
代码(Console.WriteLine("我没有想到的问题");//检查是条件是否有漏洞)
}
if(...) {}
if(...) {}
if(...) {}// 这样的结构属于多组分支语句,计算机都会进行表达式判断
第二种分支语句:
switch...case...
判断变量的值是什么,最后必须跟break;default有没有都可以。
switch (变量)
{
case 值: 执行代码;//可以写好几行执行代码
break;
case 值: 执行这里;break;
case 值: 执行这里;break;
default: b = "";break;
}
default相当于else。指定类型参数的默认值
switch ..case 能做的,if else 一定能做。if else能做的,swich case不一定能做。swich case 更简洁
练习1
问我饿不饿:
饿就吃饭!
很饿就赶紧吃饭!
不饿就等会再吃!
Console.Write("你饿不饿?"); string a = Console.ReadLine(); if (a == "饿") { Console.WriteLine("就吃饭!"); } else if (a == "很饿") { Console.WriteLine("就赶紧吃饭"); } else { Console.WriteLine("就等会再吃!"); } Console.ReadKey();
练习2
判断学生成绩:
0-100之间才为正确的分数;// a<0 && a>100
60分以下,不及格! // a<60
60分以上,及格了! // a>=60 && a<90
90分以上,学的很棒! // a>=90 && a<100
100分,满分,好厉害! // a==100
Console.Write("请输入成绩:"); decimal b = Convert.ToDecimal(Console.ReadLine()); if (b < 0 || b > 100) { Console.WriteLine("成绩输入正确。"); } else if (b < 60) { Console.WriteLine("不及格!"); } else if (b < 90 && b >= 60) { Console.WriteLine("及格了!"); } else if (b >= 90 && b < 100) { Console.WriteLine("学的很棒!"); } else if (b == 100) { Console.WriteLine("满分,好厉害"); } Console.ReadLine();
练习3
输入姓名:
如果是张三,输出,我叫张三,我是男的!
如果是李四,输出,我叫李四,我是男的!我比张三大!
如果是小花,输出,我叫小花,我是女的!
其它名称,输出,查无此人!
Console.Write("请输入姓名:"); string name = Console.ReadLine(); if (name == "张三") { Console.WriteLine("我叫张三,我是男的!"); } else if (name == "李四") { Console.WriteLine("我叫李四,我是男的!我比张三大!"); } else if (name == "小花") { Console.WriteLine("我叫小花,我是女的!"); } else { Console.WriteLine("查无此人"); } Console.ReadLine();
练习4
猜拳:
请输入你的手势: 石头剪子布
用户手势:xxx
电脑手势:xxx
xxx赢了!
//用户输入 Console.Write("请输入你的手势(1:石头,2:剪子,3:布):"); int a = Convert.ToInt32(Console.ReadLine()); //电脑输入 Random r = new Random(); int b = r.Next(1, 4); //对比输赢 //用户赢 1,2 2,3 3,1 //电脑赢 1,3 3,2 1,3 //用户赢 -1 -1 2 //电脑赢 -2 1 1 int c = a - b; if (c == -1 || c == 2) { Console.Write("用户赢了"); } else if (c == 0) { Console.WriteLine("平局"); } else if (c == -2 || c == 1) { Console.WriteLine("电脑赢了"); } Console.ReadLine();
练习5
判断当前日期是一年中的第几天:
请输入月份:
请输入日期:
此日期是一年中的第xxx天。
一月31,二月28,三月31,四月30,五月31,六月30,七月31,八月31,九月30,十月31,十一月30,十二月31
//用户输入月份和日期 Console.Write("请输入月份:"); int a = Convert.ToInt32(Console.ReadLine()); Console.Write("请输入日期:"); int b = Convert.ToInt32(Console.ReadLine()); //判断用户输入的月份和日期是否正确 if (a < 1 || a > 12) { Console.WriteLine("月份输入错误"); } else if ((b < 1 ||b>31)|| (a == 2 )&&( b > 28) || (a == 1 || a == 3 || a == 5 || a == 7 || a == 8 || a == 10 || a == 12) &&( b > 31) || (a == 4 || a == 6 || a == 9 || a == 11) && (b > 30))//()内的表示一个独立条件 { Console.WriteLine("日期输入错误"); } else { //计算当前日期一年一共多少天 int a1 = 31, a2 = 28, a3 = 31, a4 = 30, a5 = 31, a6 = 30, a7 = 31, a8 = 31, a9 = 30, a10 = 31, a11 = 30, a12 = 31; int c = 0; switch (a) { case 1: c = b; break; case 2: c = a1+b; break; case 3: c = a1+a2+b; break; case 4: c = a1+a2+a3+b; break; case 5: c = a1+a2+a3+a4+b; break; case 6: c = a1+a2+a3+a4+a5+b; break; case 7: c = a1+a2+a3+a4+a5+a6+b; break; case 8: c = a1+a2+a3+a4+a5+a6+a7+b; break; case 9: c = a1+a2+a3+a4+a5+a6+a7+a8+b; break; case 10: c =a1+a2+a3+a4+a5+a6+a7+a8+a9+b; break; case 11: c =a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+b; break; case 12: c =a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+b; break; } Console.WriteLine(a + "月" + b + "日一共" + c + "天!"); } Console.ReadLine();
练习6
让用户输入3个数:
将这三个数,从大到小,排列打印出来。
//用户输入三个数 Console.Write("请输入第一个数:"); decimal a = Convert.ToDecimal(Console.ReadLine()); Console.Write("请输入第二个数:"); decimal b = Convert.ToDecimal(Console.ReadLine()); Console.Write("请输入第三个数:"); decimal c = Convert.ToDecimal(Console.ReadLine()); //比较大小 //a b c a>b>c a>c>b a=b=c a=b>c //b a c b>a>c b>c>a b=c>a //c a b c>a>b c>b>a c=a>b if ((a > b && b > c) || (a == b && a == c) || (a == b && a > c)) { Console.WriteLine("三个数的排序是:" + a + "," + b + "," + c + "。"); } else if (a > c && a > b) { Console.WriteLine("三个数的排序是:" + a + "," + c + "," + b + "。"); } else if (b > a && a > c) { Console.WriteLine("三个数的排序是:" + b + "," + a + "," + c + "。"); } else if ((b > c && c > a) || (b == c && c > a)) { Console.WriteLine("三个数的排序是:" + b + "," + c + "," + a + "。"); } else if ((c > a && a > b) || (c == a && c > b)) { Console.WriteLine("三个数的排序是:" + c + "," + a + "," + b + ""); } else if (c > b && b > a) { Console.WriteLine("三个数的排序是:" + c + "," + b + "," + a + "。"); } Console.ReadLine();
运算结果