JAVA 引数 と コマンドライン

電卓の勉強をしていてふと疑問に感じたので

 

これ

if (args.length != 3){
      System.out.println("Usage : java dentaku 数値 演算子 数値");
      System.out.println("演算子は kake waru tasu hiku の4つです");
      System.exit(0);  /* プログラムを終了する */
    }

これだけだと 文字数3でダメ?
と最初思いましたが

length はC# JAVA
関係なく文字列の長さの取得。


詳しくはこのページ

www.javadrive.jp

配列変数名.length

例えばコマンドライン引数が必ず1つ指定されていなければいけない場合、例えば次のような記述を行います。

public static void main(String args[]){

  if (args.length != 1){
    System.out.println("引数を1つ指定して下さい");
    System.exit(1);
  }

  /* 本来行うべき処理 */
}





とりあえず、は


public static void main(String args[])
()内はString型の 変数名args[] 配列 なので、
ここにコマンドラインの引数を入れる

{
とうぜん配列なので
args[0] = test1
args[1] = test2
args[2] = test3
if (args.length != 1){

んでややこしいのが、
配列の個数が length=個数 扱いのため、
(args.length != 1)が成り立つ

C#でもこの処理結構見たので前から疑問だったけど。
これでとりあえず、はOK


それにしても
C#で実践して、
疑問のあるのはJAVAで調べる。
みたいな形になってきてる

Main Weapon ; C#   実践
Sub Weapon  ; Java  理論

プログラミングは考える前に動かす。
とりあえず、書きゃええねん。

C#はフォームあるから便利だけど
正直、ちゃんと動かせるようになるまではコンソールアプリケーション
を動かした方がいいな。

フォームはちゃんと理解してないと管理ができない。







www.javadrive.jp



 

 

 

 

class dentaku1{
  public static void main(String args[]){
    int val1 = 0;  /* 最初の数字 */
    int val2 = 0;  /* 次の数字 */
    String ope;    /* 演算子 */

    if (args.length != 3){
      System.out.println("Usage : java dentaku 数値 演算子 数値");
      System.out.println("演算子は kake waru tasu hiku の4つです");
      System.exit(0);  /* プログラムを終了する */
    }

    val1 = Integer.parseInt(args[0]);
    val2 = Integer.parseInt(args[2]);
    ope = args[1];

    System.out.println("入力された式は " + val1 + " " + ope + " " + val2 + " です");
  }
}