2015-04-02 59 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