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

标签 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;
    }
}

最佳答案

开始使用前需要检查arguments数组的长度,错误退出,修改:

    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)

The "0" lets whomever called your program know that everything went OK. If, however, you are quitting due to an error, you should System.exit(1);, or with another non-zero number corresponding to the specific error.

关于java - 如何检查用户是否未输入任何内容以便显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27037251/

相关文章:

java - 组织数据的问题

javascript - JavaScript 中的方法重载

c++ - 跨平台键盘/鼠标输入推荐

java - 无法读取输入?

java - 删除 iText PDF 签名中矩形的填充

java - 如何在 Java 中为 REST 服务获取 WSDL

java - 在不同的 JUnit 测试类之间共享数据的最佳方式是什么

php - 来自类 php 的 Ajax 调用方法

ios - Objective-C和外部整数方法

c - 一行输入多个int,返回int的个数