引数を表示する。
例によっていつもどおり使っているのはこの本。
そして、単純に文字を表示することは出来た。
次は、引数を入力した分だけ表示する。
例えば、
とした時に、
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]); } } } }
我ながらよくやった。