如果用户不提供命令行参数,我正在尝试显示错误消息。当我在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;
}
}
答案 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!