Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

どうして

掛け算ができないんですか?
どうすればいいですか?

    public static void main(String args[]){
        int i1=Integer.parseInt(args[0]);
        int i2=Integer.parseInt(args[2]);
        System.out.print(args[0]);
        System.out.print(args[1]);
        System.out.println(args[2]);
        
        if((args[1]).equals("+"))
            System.out.println(i1+i2);
        else if((args[1]).equals("-"))
            System.out.println(i1-i2);
        else if((args[1]).equals("*"))
            System.out.println(i1*i2);
        else if((args[1]).equals("/"))
            System.out.println(i1/i2);
        
    }
}

5

回答

5718

閲覧

5件の回答

評価

0

これは難しいわね。
知らないとできないわ。

コマンドラインにおいて * は特別な意味を持つの。
 * を指定するとファイル名を引き渡してしまうのよ。

なので掛け算のときは * を使わず x にするとか
ちょっと考えないといけないわ。

評価

0

勉強させていただきました。

ところで、コマンドラインでエスケープは有効ですか?

評価

0

横レス失礼します。

アスタをダブルクォーテーションで括ると実行できました。引数を

6 "*" 3

のように指定して。


>>不良社員様
エスケープはエラーになってしまうようなので
回避方法として/(スラッシュ)を使うか
\\とすればエラーを回避して
\を認識するようですね。

…的外れな回答でしたでしょうか?

評価

0

俺のいうエスケープというのは、Winなら\のことだよ。
有効ということで、確認感謝です。

そういや、' 'を含むパスも、'\ 'で通ったんだっけ。

評価

0

ミス失礼。ダブルクォーテーションではなく
シングルクォーテーションでした。

6 '*' 3

ソースの方も
if((args[1]).equals("*"))ではなく
if((args[1]).equals("'*'"))にする必要がありますけど。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。