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();

 

此案例应注意的是随机数的使用和把随机变量转换成字符串输出。

 

posted @ 2017-02-25 11:37  唐宏昌  阅读(228)  评论(0编辑  收藏  举报