読者です 読者をやめる 読者になる 読者になる

引数を表示する。

 例によっていつもどおり使っているのはこの本。

これならわかるJava入門の入門 第2版

これならわかるJava入門の入門 第2版

 

 そして、単純に文字を表示することは出来た。
次は、引数を入力した分だけ表示する。

例えば、

$ java sample.java 1 2

とした時に、

最初のjavaJavaの実行

2つ目のsample.javaはプログラム名

3つ目の1と4つ目の2が引数。

P.141 のsample14.javaを参考にargs[0],args[1]をprintlnで表示。

確かに表示することはできる。(本の通りにやっているから)

ただ、以下の場合には支障がでてくる。

●引数を入力しなかった場合

●引数を2つ以上入力した場合

[出した答え]

□if文で場合分けすればわけられそうだ!

引数の数を数えるには。。

参考P.133〜で、配列名.length

args.lengthが0の時

args.lengthが1の時

args.lengthが2の時

ということで、やってみた。

class sample14{
    public static void main(String[] args){
         if(args.length == 1){
             System.out.println("引数2つ入れてくれないとやだ。");
             System.exit(1);
         }else if(args.length == 0){
             System.out.println("ひきすう2ついれて!");
             System.exit(1);
         }else{
             System.out.println("第1引数:" + args[0]);
             System.out.println("第2引数:" + args[1]);
             System.exit(1);
         }
     }
} 

ここでの問題点。

●3,4と引数を増やした場合は対処しきれてない。

●System.exit(1);を複数書かなければならなず、キレイじゃない。

[助言を頂き出した答え]

□for文で条件が一致する間回せばいい!

P.156〜のforの説明を読んでみる。

 

for(初期値;終了条件;ループ条件){

   条件が一致する間行う処理

}

forとifの合わせ技でやればいいんだ!

forで引数の回数を管理

ifで回数が0回、1回、それ以上の時の管理

 

で出来上がったのが、以下のとおり

public class sample14b{
    public static void main(String[] args){
        int i;
        if(args.length == 0){
            System.out.println("引数を1つでもいれて!");
        }else{
            for(i = 0;i < args.length;i++){
                System.out.println("第"+ (i+1) +"引数:" + args[i]);
            }
        }
    }
}

我ながらよくやった。