如何检查用户是否输入任何内容,以便显示错误消息

时间:2014-11-20 10:29:02

标签: java methods input command-line-arguments

如果用户不提供命令行参数,我正在尝试显示错误消息。当我在cmd中键入“java sheet12t1”时出错。我的其余程序已经确定,只是这部分不起作用。

我正在处理的问题如下,以及我的代码。

这是我正在使用的问题:http://i.imgur.com/Fv6901B.png

public class sheet12t1
{
    public static void main(String[] args)
    {
        int projectCategory = Integer.parseInt(args[0]);
        int keyServiceType = Integer.parseInt(args[1]);
        if (args.length != 2)
            System.out.println("Please enter: java sheet12t1 projectCategory serviceType");

        else if (args.length == 0)
            System.out.println("Please enter two valid inputs.");

        else if (projectCategory < 1 || projectCategory > 3)
            System.out.println("Please enter valid inputs.");

        else if (keyServiceType < 1 || keyServiceType > 3)
            System.out.println("Please enter valid inputs.");

        else
        {
            double result = calculateProjectCost(projectCategory, keyServiceType);
            System.out.println("Total project cost: " + result);
        }
    }

    public static double calculateProjectCost(int projectCategory, int keyServiceType)
    {
        double totalCost = 10000;
        if (projectCategory == 1)
        {
            if (keyServiceType == 1)        totalCost += 5600.5;
            else if (keyServiceType == 2)   totalCost += 5500;
            else                            totalCost += 6000;
        }
        else if (projectCategory == 2)
        {
            if (keyServiceType == 1)        totalCost += 10600.5;
            else if(keyServiceType ==2)     totalCost += 11000;
            else                            totalCost += 13500;
        }
        else
        {
            if (keyServiceType == 1)        totalCost += 17000;
            else if(keyServiceType == 2)    totalCost += 22000;
            else                            totalCost += 25000;
        }
        return totalCost;
    }
}

2 个答案:

答案 0 :(得分:3)

你需要在开始使用它之前检查参数数组的长度,如果错误则退出,更改:

    int projectCategory = Integer.parseInt(args[0]);
    int keyServiceType = Integer.parseInt(args[1]);

    if (args.length != 2)
        System.out.println("Please enter: java sheet12t1 projectCategory serviceType");

    if (args.length != 2) {
        System.out.println("Please enter: java sheet12t1 projectCategory serviceType");
        System.exit(1);
    }

    int projectCategory = Integer.parseInt(args[0]);
    int keyServiceType = Integer.parseInt(args[1]);

取自https://stackoverflow.com/a/2670980/621366简要解释为何System.exit(0)System.exit(1)

  

&#34; 0&#34;让任何一个叫你程序的人知道一切都好。但是,如果由于错误而退出,则应该使用System.exit(1);或者使用与特定错误相对应的其他非零数字。

答案 1 :(得分:0)

尝试做这样的事情:

public static void main(String[] args)
{
  System.out.println(args.length);
}

您可以检查args.length是否为0!