2012-05-15 17 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大小写)