2016-09-17 16 views
0

C#でnetPayとgrossPayを計算する基本的なプログラムを作成しようとしていますが、少し問題があります。私はスイッチに私のプログラムにスイッチを追加した後に、taxRateが割り当てられていないローカル変数だと言って、提供された文字に基づいてconstに私のtaxRateを設定するスイッチを含めました。私はまだC#にはとても新しいので、私はおそらく非常に単純な間違いをしましたが、私の人生のために私はそれを見つけることができません。あらかじめ助けてくれてありがとう。スイッチケースにC#割り当てられていないローカル変数の使用

 const int married = 15, single = 22, divorced = 23, widowed = 13; 
     double payRate, hoursWorked, grossPay, netPay; 
     double taxRate; 
     char marStatus; 



     Console.WriteLine("Please Enter Hourly Wages"); 
     payRate = int.Parse(Console.ReadLine()); 

     Console.WriteLine("Please Enter Hours Worked"); 
     hoursWorked = int.Parse(Console.ReadLine()); 

     Console.WriteLine("Please Enter Marital Status Letter: (M) Married (S) Single (D) Divorced (W) Widowed"); 
     marStatus =Convert.ToChar(Console.ReadLine()); 


     switch (marStatus) 
     { 
      case 'M': 
       taxRate = married; 
       break; 
      case 'S': 
       taxRate = single; 
       break; 
      case 'D': 
       taxRate = divorced; 
       break; 
      case 'W': 
       taxRate = widowed; 
       break; 
      default: 
       Console.WriteLine("Invalid Input, Please Try Again."); 
       break; 
     } 

     if (hoursWorked > 40) 
     {grossPay =((hoursWorked-40)*(payRate*1.5))+(40*payRate);} 
     else 
     { grossPay = payRate * hoursWorked; } 

     netPay = grossPay * taxRate; // This is where I have the problem 

     Console.WriteLine("Gross Pay=" +grossPay); 
     Console.WriteLine("Net Pay=" +netPay); 
     Console.WriteLine("xxx"); 

     Console.ReadLine(); 

答えて

1

defual場合は(他の場合は「marStatus」と一致しない)が満たされた場合、その後taxRate値とasignedれません。後でこの変数を値なしで使用しようとします。これはあなたが得ているコンパイルエラーです。変数に値を代入する。

関連する問題