【发布时间】:2018-02-14 18:44:19
【问题描述】:
我正在为如何使我的程序捕获 args 和 op 长度的语法而苦苦挣扎。我需要它们都正好是 3(3 个参数和 op 必须是 3 个字符),如果不是,我需要它来打印出相应的 println 消息。我是 Java 新手,所以如果我的代码看起来不愉快或严重错误,我深表歉意。
import java.util.*;
public class dd{
public static void main(String[] args)
{
if (args.length !=3)
if (op.length !=3)
{
try
{
int = args.length ;
System.out.println("ok");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("invalid number of arguments");
}
catch( NumberFormatException e )
{
System.out.println("invalid number of characters in operator");
}
finally
{
}
String op = args[2];
int op1 = Integer.parseInt(args[0]);
int op2 = Integer.parseInt(args[1]);
switch(op) {
case "add":
System.out.println(op1+op2);
break;
case "sub":
System.out.println(op1-op2);
break;
}
}
}
编辑:我通过简单的 if 语句让程序按需要运行。我现在的问题是如何使用 try catch 使程序功能相同?下面是新代码
import java.util.*;
public class tester{
public static void main(String[] args)
{
if (args.length != 3 ){
System.out.println ("Invalid argument");
}
String op = args[2];
int op1 = Integer.parseInt(args[0]);
int op2 = Integer.parseInt(args[1]);
{
if (op.length() !=3){
System.out.println ("Invalid op length");
}
switch(op) {
case "add":
System.out.println(op1+op2);
break;
case "sub":
System.out.println(op1-op2);
break;
}
}
}
}
【问题讨论】:
-
抱歉,这个社区不是一个免费的导师服务,人们会坐下来一步步教你如何修复代码中的无数语法错误。认真的:退后一步。尝试一个接一个地学习一个的概念。不要把这样的东西拼凑在一起,而是制造出你和其他任何人都无法展开的混乱。
-
代码无法编译,因为您在声明
op之前调用了op.length。而且因为op是一个字符串,所以应该是op.length()(方法调用)。你有什么问题? -
说真的:不要写 100 行代码......然后运行编译器。而是编写最少 量的代码。足以让您认为“这应该编译”。然后运行编译器……看看它要说什么。修复所有问题,编写更多代码,再次运行编译器。
-
最后:你不会“捕捉”数组的长度。您可以查询它的长度,然后您的代码会根据该信息做出决定。您在这里捕获的异常基本上意味着:您在代码中做错了。您不会捕获此类异常 - 您编写的代码不会出错。
-
也许不是无数 - 但你有足够的错误代码在那里很容易坐下来谈论它 30 到 60 分钟。如前所述 - 这不是这个社区的意义所在。 SO 不能代替你做那个学习部分。