2013-08-18 56 views
1

所以我剛開始編程,我開始與C#。在我正在閱讀的書中(學習c#3.0),其中一個練習就是這樣。使用開關語句而不是如果

練習5-2。創建一個提示用戶輸入的程序,接受一個整數,然後 通過使用多級if語句來評估該輸入是零,奇數還是偶數,是10的倍數還是太大(比100多出 )。

我設法給這一點,但接下來的演習是

練習5-3。重寫練習5-2中的程序,使用switch語句完成相同的 工作。

我知道switch語句是如何工作的,但是,我不知道如何制定出如果用戶輸入數爲奇數/偶數,10的倍數等,而if語句不使用。感謝您的任何幫助。

+1

你能告訴我們你試過什麼嗎? –

+0

一個開關的布爾事物開關,並且一個案例true和case假。 –

+0

下面是該書中該頁的鏈接(http://books.google.com/books?id=CgLgh5vQcPgC&pg=PA120)。 –

回答

1

你可以這樣做:

int input = ... 
switch (input) 
{ 
    case 0: 
     Console.WriteLine("Zero"); 
     default; 
    default: 
     switch (input < 100) 
     { 
      case true: 
       switch (Math.Abs(input) % 10) 
       { 
        case 0: 
         Console.WriteLine("Multiple of 10"); 
         break; 
        case 2: 
        case 4: 
        case 6: 
        case 8: 
         Console.WriteLine("Even"); 
         break; 
        default: 
         Console.WriteLine("Odd"); 
         break; 
       } 
       break; 
      default: 
       Console.WriteLine("Too large"); 
       break; 
     } 
     break; 
} 

我不認爲你可以在C#—除非你做起來很龐大,以從每一個數量佔0-100用單switch做到這一點。您可能可以使用單個Select statement in VB.NET,它與C#switch類似,但具有明顯不同的語義。

+0

這都不應在生產代碼中使用,但很好的工作:) –

+0

什麼輸入== 0?也請儘量尊重條件給出的順序 – TGO

+0

@TGO謝謝,我忘了零情況。雖然我不認爲你可以完全按照給定的順序處理條件。你必須檢查<100你檢查它是否被10整除或2 –