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] + " ");
    }

}

出力(コマンド行で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 + " ");

さらに、1つのステートメントのブロックでも中括弧を使用することをお勧めします。ステートメント(ログステートメントなど)を追加することで、読みやすくなり、動作が変わる可能性が低くなります。

例、単純な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、現在result *= base;は1回しか実行されていないためです(ループの外にあります)。

于 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 に答える