2013-08-27 34 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