2015-04-02 60 views
1

我一直在尝试在映射的响应上使用switch语句来确定它是一周中的哪一天。根据响应,向用户写入一个字符串。例如,对于星期一,写.Monday是第一个工作日。对于星期二,写。星期二是第二个工作日。等等。当值不同时,我如何在映射响应上使用开关响应?

我曾尝试如下所述和C#不允许使用或||操作员可以帮助我吗?

using System; 

enum WeekDay { Sunday = 0, Monday = 1, Tuesday, Thursday, Friday, Saturday }; 

static void Main(string[] args) 
{ 
    { 
     Console.WriteLine("What day is today"); 
     String strday = Console.ReadLine(); 

     WeekDay Result = WeekDay.Sunday; 
     WeekDay Result1 = WeekDay.Monday; 
     WeekDay Result2 = WeekDay.Tuesday; 

     switch (Result) 
     { 
      case WeekDay.Sunday: 
      Console.WriteLine("Sunday is a first day"); 
      break; 
     } 

     switch (Result1) 
     { 
      case WeekDay.Monday: 
      Console.WriteLine("Monday is a second day"); 
      break; 
     } 

     Console.ReadLine(); 
    } 
} 

}

回答

0

这是因为你的开关的语法是有点过。你是100%正确的,交换机不允许& &或||操作。我想你会想要这样的事情:

DateTime curDate = DateTime.Now; 

    switch(curDate.DayofWeek) //day of week is an enum, you can .ToString() it to compare against "Monday", "Tuesday", etc... or leave it as an INT, your call. 
    { 
     case (1): 
      Console.WriteLine("Sunday is first day") 
      break; 
     case (2): 
      Console.WriteLine("Monday is second day") 
      break; 
     etc... 
    } 
+0

'case(2):'should read'“Monday is the second day”';抱歉,被复制/粘贴咬伤。 – 2015-04-02 17:15:27

+0

1.你错过了WriteLines分号,2。我敢肯定,你不需要对此案1.括号但不管怎么说,好工作:d – Meraj99 2015-04-02 17:17:05

+0

正确的,你不需要周围的括号'(1 )'这只是一个习惯,我必须帮助我的可读性;我喜欢分区/包含我的比较对象。错过的分号正是那个,错过 - 对不起:) – 2015-04-02 17:20:33