首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于args的有关问题

2012-05-07 
关于args的问题大家看一下public class TestArgs {public static void main(String[] args) {if(args.leng

关于args的问题
大家看一下
public class TestArgs {
public static void main(String[] args) {

  if(args.length<3){
  System.out.println( 
  "Usage: java Test \"n1\" \"op\" \"n2\"");
  System.exit(-1);
   
  } 
  double d1 = Double.parseDouble(args [0]);
  double d2 = Double.parseDouble(args[2]);
  double d = 0;
  if(args[1].equals("+")) d = d1+d2;
  else if(args[1].equals("-")) d = d1-d2;
  else if(args[1].equals("x")) d = d1*d2;
  else if(args[1].equals("/")) d = d1/d2;
  else{
  System.out.println("Error operator!"); 
  System.exit(-1);
  }  
  System.out.println(d);
}
}

这代码中为什么要 if(args.length<3){ } ,不要的话会报错,为什么

[解决办法]
额。。。
如果没有 if判断,
如果输入的参数个数<3会报越界错误的。args [0]args [1]args [2].
你在cmd 命令行下运行。
而那个if语句就是提示你这样输入参数可以正确运行。
java 类名 操作数1 运算符 操作数2 (后来可以多加几个多余的都没关系。)
比如
javac TestArgs.java;
java TestArgs 1 + 2
[解决办法]
double d2 = Double.parseDouble(args[2]);
主要是这句话里有个2,说明数组必须长度大于等于3,不然的话,数组就越界。
然后的话,用cmd命令行的时候,如果不小心少输入了几个参数,就不会报错了。
[解决办法]
LS+1
[解决办法]
如果你的输入都是有大于=3个参数的,就没必要 ,这样子只是防止用户边界值
[解决办法]
为了防止用户少输数据
[解决办法]
因为你运用了args[]数组中的 args[0] args[1] args[2]

double d1 = Double.parseDouble(args [0]);
 double d2 = Double.parseDouble(args[2]);

意思就是有3个变量(其中args[1]是运算符)。



其 args.length<3 就是判断 args的长度,也就是你在命令行参数上输入的字符不能超过3个

热点排行