C#基础 分支语句练习题(中间变量,随机数的使用)
练习一
请输入年份:”(1-9999),请输入月份:”(1-12),请输入日期(要判断大小月,判断闰年),判断输入的时间日期是否正确。
计算输入的时间是当前这一年的第几天。
1 bool dateISOK = false;//放置日期是否正确的判断 2 bool isRN = false;//放置是否是闰年的判断 3 int year = 0; 4 int month = 0; 5 int day = 0; 7 //判断年份是否正确 8 Console.Write("请输入年份:"); 9 year = Convert.ToInt32(Console.ReadLine()); 10 if (year >= 1 && year <= 9999) 12 { 13 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) 14 { 15 isRN = true; 16 } 18 //判断月份是否正确 19 Console.Write("年份输入正确,请输入月份:"); 20 month = Convert.ToInt32(Console.ReadLine()); 21 if (month > 0 && month < 13) 22 { 23 Console.Write("月份输入正确,请输入日期:"); 24 //判断日期是否正确 25 day = Convert.ToInt32(Console.ReadLine()); 27 if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) 28 { 29 if (day >= 1 && day <= 31) 30 { 31 Console.WriteLine("输入的全部日期正确!"); 32 dateISOK = true; 33 } 34 else 35 { 36 Console.WriteLine("输入的日期有误!"); 37 } 38 } 39 if (month == 4 || month == 6 || month == 9 || month == 11) 40 { 41 if (day >= 1 && day <= 30) 42 { 43 Console.WriteLine("输入的全部日期正确!"); 44 dateISOK = true; 45 } 46 else 47 { 48 Console.WriteLine("输入的日期有误!"); 49 } 50 } 51 else if (month == 2) 52 { 53 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) 54 { 55 if (day >= 1 && day <= 29) 56 { 57 Console.WriteLine("输入的全部日期正确!"); 58 dateISOK = true; 59 } 60 else 61 { 62 Console.WriteLine("输入的日期有误!"); 63 } 64 } 65 else 66 { 67 if (day >= 1 && day <= 28) 68 { 69 Console.WriteLine("输入的全部日期正确!"); 70 dateISOK = true; 71 } 72 else 73 { 74 Console.WriteLine("输入的日期有误!不是闰年2月最多28天"); 75 } 76 } 77 } 78 } 79 else 80 { 81 Console.WriteLine("输入的月份有误!"); 82 } 83 } 84 else 85 { 86 Console.WriteLine("输入的年份有误!"); 87 } 88 89 //如果日期都正确,我们开始计算第几天 90 if (dateISOK == true) 91 { 92 int count = 0; 93 int m1 = 31, m2 = 28, m3 = 31, m4 = 30, m5 = 31, m6 = 30, m7 = 31, m8 = 31, m9 = 30, m10 = 31, m11 = 30, m12 = 31; 94 95 if (month == 1) 96 count = day; 97 if (month == 2) 98 count = m1 + day; 99 if (month == 3) 100 { 101 if (isRN == true) 102 count = m1 + m2 + 1 + day; 103 else 104 count = m1 + m2 + day; 105 } 106 if (month == 4) 107 { 108 if (isRN == true) 109 count = m1 + m2 + 1 + m3 + day; 110 else 111 count = m1 + m2 + m3 + day; 112 } 113 if (month == 5) 114 { 115 if (isRN == true) 116 count = m1 + m2 + 1 + m3 + m4 + day; 117 else 118 count = m1 + m2 + m3 + m4 + day; 119 } 121 Console.WriteLine(year + "年" + month + "月" + day + "日是此年的第" + count + "天"); 122 } 127 Console.ReadLine();
注意此方案中间变量的使用,
bool b =false;假设结果默认错误,
在if 中计算的结果可分为两种 false true
结果正确时 b = true;(赋值) 结果错误时默认
在后面执行运算时可直接引用 if ( b==true )
练习二
猜拳
请输入您的手势(石头/剪子/包袱),用户赢了” “电脑赢了” “平局”
猜拳将用户的手势和电脑的手势输出出来
1 #region 手势生成 2 Console.Write("请输入您的手势(石头、剪刀、包袱):"); 3 string user = Console.ReadLine(); 4 int user1; 5 6 if (user == "石头") 7 user1 = 0; 8 else if (user == "剪刀") 9 user1 = 1; 10 else 11 user1 = 2; 12 13 Random r = new Random(); 14 int com = r.Next(0, 3); 15 #endregion 16 17 #region 输出两位选手的手势 18 string comEnd = ""; 19 20 if (user != "剪刀" && user != "石头") 21 { 22 user = "包袱"; 23 } 24 25 if (com == 0) 26 comEnd = "石头"; 27 else if (com == 1) 28 comEnd = "剪刀"; 29 else 30 comEnd = "包袱"; 31 32 Console.WriteLine("用户手势:" + user + "\t电脑手势:" + comEnd); 33 #endregion 34 35 #region 胜负判断 36 if ((user1 == 0 && com == 1) || (user1 == 1 && com == 2) || (user1 == 2 && com == 0)) 37 { 38 Console.WriteLine("用户胜利!"); 39 } 40 else if ((user1 == 0 && com == 2) || (user1 == 1 && com == 0) || (user1 == 2 && com == 1)) 41 { 42 Console.WriteLine("用户失败!"); 43 } 44 else 45 { 46 Console.WriteLine("平局!"); 47 } 48 #endregion 49 50 Console.ReadLine();
此案例应注意的是随机数的使用和把随机变量转换成字符串输出。