

下記のプログラムだと、 1 tasu 1 tasu 1 tasu 1 tasu 1 をしても答えは2となります。
入力された数字を一気に計算できる方法を教えて下さい。
また、必ず5の値を入力しなくては、いけないのでは無くて、5つ以下ならOKにしたいです。
コマンドプロンプト上で自ら入力し動くプログラムを作成中です。
例:1 tasu 1 tasu 1 tasu 1 tasu 1 答え5
1 tasu 1 tasu 1 答え3
/*演算子チェックと演算実行*/
if (args[1].equals("tasu")){ /*演算子チェック*/
ans1 = num1 + num2;
}else if (args[1].equals("hiku")){ /*演算子チェック*/
ans1 = num1 - num2; /* hiku 演算実行*/
}else if (args[1].equals("kake")){ /*演算子チェック*/
ans1 = num1 * num2; /* kake 演算実行*/
}else if (args[1].equals("waru")){ /*演算子チェック*/
if(num2 == 0){ /*0算チェック*/
System.out.println("0で割ろうとしました");
}else{
BigDecimal bd1 = new BigDecimal(num1); /* waru 演算実行*/
BigDecimal bd2 = new BigDecimal(num2);
BigDecimal bd3 = bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP);/*小数点第3位四捨五入、小数点第2位まで表示の割り算*/
}
}else{
System.out.println("演算子1: kake waru tasu hiku の中から入力して下さい");
}
/*演算子チェックと演算実行*/
if (args[3].equals("tasu")){ /*演算子チェック*/
ans1 = num2 + num3;
}else if (args[3].equals("hiku")){ /*演算子チェック*/
ans1 = num2 - num3; /* hiku 演算実行*/
}else if (args[3].equals("kake")){ /*演算子チェック*/
ans1 = num2 * num3; /* kake 演算実行*/
}else if (args[3].equals("waru")){ /*演算子チェック*/
if(num3 == 0){ /*0算チェック*/
System.out.println("0で割ろうとしました");
}else{
BigDecimal bd1 = new BigDecimal(num2); /* waru 演算実行*/
BigDecimal bd2 = new BigDecimal(num3);
BigDecimal bd3 = bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP);/*小数点第3位四捨五入、小数点第2位まで表示の割り算*/
}
}else{
System.out.println("演算子2: kake waru tasu hiku の中から入力して下さい");
}
/*演算子チェックと演算実行*/
if (args[5].equals("tasu")){ /*演算子チェック*/
ans1 = num3 + num4;
}else if (args[5].equals("hiku")){ /*演算子チェック*/
ans1 = num3 - num4; /* hiku 演算実行*/
}else if (args[5].equals("kake")){ /*演算子チェック*/
ans1 = num3 * num4; /* kake 演算実行*/
}else if (args[5].equals("waru")){ /*演算子チェック*/
if(num4 == 0){ /*0算チェック*/
System.out.println("0で割ろうとしました");
}else{
BigDecimal bd1 = new BigDecimal(num3); /* waru 演算実行*/
BigDecimal bd2 = new BigDecimal(num4);
BigDecimal bd3 = bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP);/*小数点第3位四捨五入、小数点第2位まで表示の割り算*/
}
}else{
System.out.println("演算子3: kake waru tasu hiku の中から入力して下さい");
}
/*演算子チェックと演算実行*/
if (args[7].equals("tasu")){ /*演算子チェック*/
ans1 = num4 + num5;
}else if (args[7].equals("hiku")){ /*演算子チェック*/
ans1 = num4 - num5; /* hiku 演算実行*/
}else if (args[7].equals("kake")){ /*演算子チェック*/
ans1 = num4 * num5; /* kake 演算実行*/
}else if (args[7].equals("waru")){ /*演算子チェック*/
if(num5 == 0){ /*0算チェック*/
System.out.println("0で割ろうとしました");
}else{
BigDecimal bd1 = new BigDecimal(num4); /* waru 演算実行*/
BigDecimal bd2 = new BigDecimal(num5);
BigDecimal bd3 = bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP);/*小数点第3位四捨五入、小数点第2位まで表示の割り算*/
}
}else{
System.out.println("演算子4: kake waru tasu hiku の中から入力して下さい");
}
No.1ベストアンサー
- 回答日時:
public static void main(String[] args){
int kekka = 0;
int num = 0;
String enzanshi = null;
for ( int i = 0 ; i < args.length ; i ++ ){
if ( args[i].equalsIgnoreCase("tasu") ){
kekka += num;
enzanshi = args[i];
} else {
num = Integer.parseInt(args[i]);
}
}
if ( enzanshi.equalsIgnoreCase("tasu") ){
kekka += num;
}
System.out.println(kekka);
}
足し算だけ。
No.2
- 回答日時:
電卓っぽいものを実装するならば、逆ポーランド記法で計算できるようなやつだと勉強にはいいんじゃないかと思ったり。
慣れればあっちのほうが直感的にわかりやすいし、スタックのお勉強もできます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleログインボタンのデザイ...
-
プログラミングの問題です。大...
-
JDONWROADER2のエラー修復
-
スプレッドシートからリマイン...
-
googleスプレッドシートのスク...
-
googleスプレッドシートのGASに...
-
Verilogについて質問です。この...
-
論理回路設計をVerilogで行う問...
-
ゲーム開発の入門書を探しています
-
jdbcでinsert,delete,createをe...
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
-
JAの支部?地域の農協のカード...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
-
ショートカットキーについて
-
list の空は [] ってあわらすのに
-
あんまりお料理しないのに台所...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
論理演算子”||”またはの入力方法
-
java キーボード入力された値の...
-
テキストボックスに入力された...
-
総称型ArrayList<E>への参照...
-
16進数数字を結合して、10進数...
-
JAVAのfor文で困っています。
-
数値⇒漢数字変換 java
-
Java 配列<選挙>
-
Java キーボードから負の数が入...
-
Java 入力した整数値の合計を、...
-
C#の質問
-
2つのスクロールバーを連動させ...
-
java 拡張for map
-
java 配列
-
Javaの問題について
-
Javaの問題について
-
Java 4択問題の連続する2問の正...
-
javaについて質問です。
おすすめ情報