尝试参数的命令行输出时出错

时间:2017-01-13 07:41:36

标签: java

尝试命令行参数时,以下代码中的错误是什么?我在第System.out.println(args[i]);

收到错误
 public class CommandLA{  
   public static void main(String []args)  
   {  
      int s = 0;  
      for(int i=0;i<args.length;i++)  
      System.out.println(args[i]);              
      s = s + Integer.parseInt(args[i]);  
      System.out.println("Sum is : "+s);  
   }  
 } 

3 个答案:

答案 0 :(得分:2)

也许

public static void main(String []args)
{
   int s = 0;
   for (String str : args) {
      s = s + Integer.parseInt(str);
   }
   System.out.println("Sum is : "+s);
}

或使用索引

public static void main(String []args)
{
   int s = 0;
   for (int i = 0; i < args.length; i++) {
      s = s + Integer.parseInt(args[i]);
   }
   System.out.println("Sum is : "+s);
}

答案 1 :(得分:1)

简单:

for(int i=0;i<args.length;i++)  
  System.out.println(args[i]);   

接着是

s = s + Integer.parseInt(args[i]);

但是 - 你在循环之后错过了 {!因此,i存在的范围(可见)只是之后的直接&#34; for-loop&#34;线!

换句话说,你需要(..){所有使用我的东西}!

答案 2 :(得分:0)

详细说明GhostCat的答案:

for(int i=0;i<args.length;i++)  
System.out.println(args[i]);              
s = s + Integer.parseInt(args[i]);  

相同
for(int i=0;i<args.length;i++){
    System.out.println(args[i]);   
}           
s = s + Integer.parseInt(args[i]);  

这意味着在最后一行中,我不知道,导致错误。

我想知道为什么之前在该行检测到错误,因为在此之前,代码在技术上是正确的。

那就是说,我建议在任何情况下使用括号。有些人省略了它们以获得更短的代码,但这意味着如果稍后添加一行,他很容易犯错误。当然,这是个人偏好。