複数の数字を計算
下記のプログラムだと、 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 の中から入力して下さい");
}
お礼
詳しい説明ありがとうございます