Java - 薪水问题

时间:2012-05-15 16:52:38

标签: java

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个在消息对话框中。关于我如何解决它的任何提示?

3 个答案:

答案 0 :(得分:7)

您的主要方法以:

开头
while(name != null)

但你还没有申报名字。在循环开始之前,您需要移动String name行。

答案 1 :(得分:2)

正如其他人所指出的,你需要在main中修复你的while循环,因为名字没有被定义。

但是,还有另一个错误:您对JOptionPane.ShowMessageDialog()的来电不正确。

您应该调用的正确方法是JOptionPane.showMessageDialog()(注意驼峰案例方法名称而不是pascal案例)

答案 2 :(得分:1)

如果您发布的代码确实是您的完整程序,那么您的name函数中有一个未定义的main()

您必须在类中添加静态变量名name,因此静态main()可以访问它或在main()中本地声明它。再看一下,您确实声明了String name,但在尝试使用它之后。在name

中的if()之前移动main()的声明