0

如何在 args 数组中打印出一组整数。我打算输出:数字是 1、2、3、4、5

System.out.println("The numbers are ");
    for(int i=0; i< args.length;i++)
    System.out.print(args[i] + " ";

当我用“int b = 0;”解析它时,编译器给我一个错误“我无法解析为变量” 它给了我一个整数,而不是 args 中的整数

4

4 回答 4

3

如果那是您的实际代码,那么您在分号之前的最后一行中缺少一个结束括号。

这对我有用:

public class tester {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("The numbers are ");
        for (int i = 0; i < args.length; i++)
            System.out.print(args[i] + " ");
    }

}

输出(当在 cmd 行上指定 1 2 3 4 5 时):

The numbers are 
1 2 3 4 5
于 2011-08-10T12:11:08.187 回答
3

从 Java 5 开始,您也可以i完全跳过:

for( String arg : args )
   System.out.print(arg + " ");

此外,我想提倡使用花括号,即使是单语句块。通过添加语句(如一些日志语句)更容易阅读并且不太可能改变行为。

例如,一个简单的pow()方法(为简单起见跳过了检查):

原始代码:

int pow(int base, int power) { //assume power to be > 1
 int result = base;

 for( int i = 1; i <= power; i++ ) 
   result *= base;

 return result;
}

现在我想在每个步骤中记录结果:

int pow(int base, int power) { //assume power to be > 1
  int result = base;

  for( int i = 1; i <= power; i++ ) 
    System.out.println( base + " pow( " + i + ") = " + result );
    result *= base;

  return result;
}

突然,我得到了一个错误的结果power > 2,因为 nowresult *= base;只执行了一次(它现在在循环之外)。

于 2011-08-10T12:33:32.610 回答
2

忘记括号了?

System.out.print(args[i] + " ");
于 2011-08-10T12:11:14.767 回答
1

您忘记println使用);.

你的问题:

System.out.print(args[i] + " ";

您的解决方案:

System.out.print(args[i] + " ");
于 2011-08-10T12:18:23.583 回答