2013-08-27 107 views
2

即時通訊這只是一個初學者和即時通訊製作一個貨幣轉換器,其中輸入和驗證一個整數,並輸入和驗證匯率。即時通訊如何計算以前輸入的兩個驗證值的匯率問題。這裏是我迄今爲止所做的代碼,這也是一個控制檯應用程序。貨幣轉換器幫助c#

static void Main(string[] args) 
    { 
     wholeNumber(); 
     exhangeNumber(); 


    } 

    private static void exhangeNumber() 
    { 
     double evalue; 
     bool valid; 

     Console.WriteLine("please enter an exchange rate"); 

     do 
     { 
      try 
      { 
       evalue = double.Parse(Console.ReadLine()); 
       Console.WriteLine("the exchange rate entered is: {0:F2}", evalue); 
       valid = true; 
      } 
      catch 
      { 
       Console.WriteLine("invalid Exchange rate please try again"); 
       valid = false; 
      } 
     } 
     while (valid == false); 
     Console.ReadLine(); 

    } 





    private static void wholeNumber() 
    { 
     int ivalue; 
     bool valid; 


     Console.WriteLine("please enter a whole number"); 
     do 
     { 
      try 
      { 
       ivalue = int.Parse(Console.ReadLine()); 
       Console.WriteLine("the valuse you have entered is : {0:F0}", ivalue); 
       valid = true; 
      } 
      catch 
      { 
       Console.WriteLine("this is not a whole number please try again"); 
       valid = false; 
      } 


     } while (valid == false); 

    } 
} 

}

回答

4

你永遠不返回值返回到你的主程序

private static double exhangeNumber() 
private static double wholeNumber() 

在這些而不是使用控制檯分別readline的使用,return ivalue/evalue;底部。然後,在主,你可以做

Console.WriteLine(exchangeNumber() * wholeNumber()); 
Console.ReadLine(); 

正如史蒂夫說,在評論,你不妨用TryParse,而不是Parse得到的值,因爲它會給你額外的錯誤處理,並會以默認值如果用戶輸入不是一個有效的數字,對於一個雙重這是0.0 ..除了這一點,也的TryParse會返回一個布爾值來解析是否是成功的

例如:

evalue = double.Parse(Console.ReadLine()); 
    is the same as (but improved) 
double.TryParse(Console.ReadLine(), out evalue); 

更好

while(!double.TryParse(Console.ReadLine(), out evalue); 
{ 
    Console.WriteLine("this is not a whole number please try again"); 
} 
Console.WriteLine("the valuse you have entered is : {0:F0}", evalue); 
+1

+1但是補充的內容解析/的TryParse,它是完美的 – Steve

+1

@Steve - 當然,我就節省,對於一個幾年下來的線時,OP回首自己的代碼來提高它:) – Sayse

+0

@Steve - 如果它可以改善任何更多的隨時讓我知道,謝謝 – Sayse