- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaプログラムについて)
Javaプログラムについて - 四則演算と計算できない場合の表示方法
このQ&Aのポイント
- Javaプログラムで、コマンドライン引数から2つの数字と1つの記号を受け取り、それに応じて四則演算を行います。
- 受け取った記号が「+」ならば、受け取った2つの数字を足し算し、結果を表示します。
- 受け取った記号が「-」ならば、受け取った2つの数字を引き算し、結果を表示します。受け取った記号が「*」ならば掛け算を行います。しかし、なぜかこの場合だけ正しく動作しません。また、それ以外の記号が入力された場合は「計算できません。」と表示するようにしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
すみません。例に余計な文字列binがくっついていました。下記のとおり読み替えてください。 NG例: java MethodAdd9 2 * 3 OK例: java MethodAdd9 2 "*" 3
その他の回答 (1)
- KSOH
- ベストアンサー率93% (29/31)
回答No.1
例えばlinuxのシェル環境やWindowsのコマンドコンソールで実行する際、引数に*と単純に書くとカレントディレクトリにあるファイル名リストに置き換えられてしまいます。これはファイル名の一覧をパラメータとして受け取るプログラムにとっては便利な機能なのですがご質問のようなケースではかえってじゃまになってしまいますね。 mainメソッドの先頭などで次のようにするとプログラムに引き渡された実引数が確認できます。 public static void main(String[] args) { for (String arg : args) { System.out.println("argument: " + arg); } ... } 対処方法としてはエスケープ記法を用いてアスタリスク文字をエスケープしてやります。 NG例: java bin MethodAdd9 2 * 3 OK例: java bin MethodAdd9 2 "*" 3 上の「OK例」のように指定してやればWindows/linuxどちらでも期待通りになると思います。
お礼
出来ました!丁寧な回答をありがとうございました!