2012-11-13 73 views
0

這裏是我的源代碼,一切都很好,直到我到達輸出,我不能得到這個工作。 Visual Studio不喜歡我在輸出部分中標記的// OUTPUT。將代碼轉換爲月份代碼遇到問題

我需要添加或更改以使其工作?

static void Main(string[] args) 
{ 
    int monthNumber; 
    string monthName; 

    //INPUT 
    Console.WriteLine("Please enter the number of the month"); 
    monthNumber = Convert.ToInt16(Console.ReadLine()); 

    //PROCCESSESS 
    if (monthNumber == 1) 
    { 
     monthName = "January"; 
    } 
    else if (monthNumber == 2) 
    { 
     monthName = "February"; 
    } 
    else if (monthNumber == 3) 
    { 
     monthName = "March"; 
    } 
    else if (monthNumber == 4) 
    { 
     monthName = "April"; 
    } 
    else if (monthNumber == 5) 
    { 
     monthName = "May"; 
    } 
    else if (monthNumber == 6) 
    { 
     monthName = "June"; 
    } 
    else if (monthNumber == 7) 
    { 
     monthName = "July"; 
    } 
    else if (monthNumber == 8) 
    { 
     monthName = "August"; 
    } 
    else if (monthNumber == 9) 
    { 
     monthName = "September"; 
    } 
    else if (monthNumber == 10) 
    { 
     monthName = "October"; 
    } 
    else if (monthNumber == 11) 
    { 
     monthName = "November"; 
    } 
    else if (monthNumber == 12) 
    { 
     monthName = "December"; 
    } 

    //space to increase readability 
    Console.WriteLine(Environment.NewLine); 

    //OUTPUT 
    Console.WriteLine("Month:" + monthName); 
    Console.ReadLine(); 
} 
+2

「Visual Studio不喜歡我擁有的」意思是什麼? – dtb

+0

你在哪裏遇到問題?那是什麼? –

+0

//輸出我得到一個未分配的變量,但其分配 – user1820059

回答

4

monthName必須在使用前初始化。所以,你可以改變報關行

string monthName = null; 

這是因爲代碼並不保證monthName被分配。例如,如果輸入數字是13,該怎麼辦?

+1

OMG到底怎麼了我想念那個LOL非常感謝你!!!!! ! – user1820059

+0

@ user1820059請記住標記您接受的答案。 – davenewza

4

您有很多else if,但最後沒有else涵蓋if沒有適用的情況。因此,編譯器無法保證monthName曾經被分配過。也許用戶輸入"28"

使用switch聲明與12個case小節和一個default小節看起來會更好。

但是,月份名稱也內置在框架中。因此,與using System.Globalization;,你可以簡單地說

monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(monthNumber); 

monthName = CultureInfo.InvariantCulture.DateTimeFormat.GetMonthName(monthNumber); 

您也可以從輸入獲得一個DateTime直接:

DateTime dateTime = DateTime.ParseExact(Console.ReadLine(), "%M", null); 

然後

monthName = dateTime.ToString("MMMM"); 
0
  • a)聲明變量
  • b)如果您使用的是月份名稱,並且您想要某些特定名稱,請嘗試使用枚舉。真的很簡單和功能。

您可以使用自己的編號來標記這些名稱/標記的名稱/標記設置。

例如,

枚舉日{星期一,1,星期日,星期一,星期二,星期四,星期四,星期五};