2010-09-09 48 views
0

我想打印按用戶時間輸入的銷售額金額.10。我的第一個問題是我想存儲一個用戶輸入銷售額的價值,然後是.10,然後打印銷售價值。我們運行程序我得到兩行一個是輸入另一個銷售額是.5。我想打印銷售額中的值

 const double COMMRATE = 0.10; 

     string inputstring; 
     double sales =5; 
     char response; 
     Console.Write("Do you want to Calculate Sales A or B or E..."); 
     inputstring = Console.ReadLine(); 
     response = Convert.ToChar(inputstring); 
     while (response == 'A') 
     { 

      Console.WriteLine("Enter Sales", sales.ToString("C")); 
      sales = sales * COMMRATE; 
      inputstring = Console.ReadLine(); 
      response = Convert.ToChar(inputstring); 
     } 
+0

你沒有對while循環內的inputstring的值做任何事情。 – 2010-09-09 03:28:52

+0

這功課嗎? – Larsenal 2010-09-09 04:45:59

回答

0

您的.5即將發生,因爲您已將銷售的默認值設置爲5,5 * 0.1 = 0.5。

但是,爲什麼會這樣呢?讓我們分開你的循環:

  1. 它要求用戶輸入銷售額。第二個參數被忽略,因爲「輸入銷售」沒有格式字符串佔位符。它不執行任何形式的線條閱讀。
  2. 如果不要求輸入,它會將銷售額乘以佣金率並將其存儲到銷售。
  3. 現在,它要求用戶輸入,
  4. 書面它馬上吐出退了出來恰好(量-的銷售輸入的線)

你實際上需要做什麼是第二Console.ReadLine()獲取銷售額的字符串,然後使用Double.ParseDouble()獲取輸入的銷售額。把它和你的COMMRATE相乘並打印出來 - 然後再次給出你的「你想計算...」的問題,然後使用它的響應來決定是否繼續循環 - 目前,響應永遠不會得到修改,所以你創建了一個無限循環。

不幸的是,你甚至沒有真正接近正確的代碼。你的循環應該看起來更像

while (response == 'A'){ 
    Console.WriteLine("Enter Sales"); 
    string salesStr = Console.ReadLine(); 
    Console.WriteLine(Double.Parse(salesStr) * COMMRATE); 
    Console.WriteLine("Enter A to continue, anything else to quit"); 
    response = Convert.ToChar(Console.ReadLine()); 
} 

......這應該讓你開始使你的程序做你想做的事。

0

這是你想要的嗎?

const double COMMRATE = 0.10; 

    string inputstring; 
    double sales; 
    char response; 
    Console.Write("Do you want to Calculate Sales A or B or E..."); 
    inputstring = Console.ReadLine(); 
    response = Convert.ToChar(inputstring); 
    while (response == 'A') 
    { 
     Console.WriteLine("Enter Sales"); 
     inputstring = Console.ReadLine(); 
     sales = Double.Parse(inputstring); 
     Console.WriteLine("Sales = " & sales); 
     Console.WriteLine("Commission = " & sales * COMMRATE); 
    } 
0

我很難判斷你到底在問什麼。

如果要打印乘以COMMRATE的值,則應該將計算放在寫入語句的上方。

sales = sales * COMMRATE; 
Console.WriteLine("Enter Sales", sales.ToString("C")); 

雖然因爲你說你要存儲用戶輸入的值,然後打印倍COMMRATE也許你應該使用類似

double calculatedSales = sales * COMMRATE 
Console.WriteLine("Enter Sales", calculatedSales.ToString("C")); 

讓你不重新定義了原有銷售額