2012-05-15 30 views
-1
import javax.swing.JOptionPane; 

public class PayCheckStatic 
{ 
    public static void main(String[] args) 
    { 

     while (name!=null) 
    { 
      String name = JOptionPane.showInputDialog("Please enter the next employees name"); 
      String wage = JOptionPane.showInputDialog("Please enter their hourly wage?"); 
      String hoursWorked = JOptionPane.showInputDialog ("How many hours did they work this last work?"); 

      double wages = Double.parseDouble(wage); 
      double hours = Double.parseDouble(hoursWorked); 

      calculatePay(name,wages,hours); 
    } 
} 

private static void calculatePay(String name,double wages,double hours) 
{ 
if (hours > 40) 
     { 
     double pay = ((wages * 40)+((hours - 40)*(1.5 * wages))); 
     JOptionPane.ShowMessageDialog (null,name + "'s pay is £" + pay); 
     } 
    else 
     { 
     double pay = (wages * hours); 
     JOptionPane.ShowMessageDialog (null,name + "'s pay is £" + pay); 
     } 
} 

} 

由於某種原因,我的代碼將無法編譯,它提出找不到符號錯誤,我不能找出原因。錯誤顯示3次,其中2個顯示在消息對話框中。有關如何修復它的任何提示?Java - 薪水問題

+2

哪些線造成的錯誤?你能顯示確切的錯誤信息嗎?這些都是您和我們幫助尋找解決方案的關鍵。雖然這次您可能會得到一個解決方案,但下次您提出有關錯誤(或任何內容)的問題時,請包含所有相關信息。 –

回答

7

你的主要方法開頭:

while(name != null) 

但你沒有申報的名字呢。在循環開始之前,您需要移動String name行。

1

如果您發佈的代碼確實是您的完整程序,那麼您的main()函數中有一個未定義的name

您將不得不在類中添加一個靜態變量名稱name,因此靜態main()可以訪問它或在本地​​聲明main()。再看看,你確實有一個String name聲明,但在你嘗試使用它之後。移動name之前的if()之前main()

2

正如其他人指出的那樣,由於名稱未被定義,您需要修復您的while循環。

但是,還有另一個錯誤:您撥打JOptionPane.ShowMessageDialog()的呼叫不正確。

你應該調用正確的方法是JOptionPane.showMessageDialog()(注意大小寫混合的方法名稱,而不是Pascal大小寫)