下記のプログラムだと、 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で質問しましょう!
似たような質問が見つかりました
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) エクセルの演算子の利用について 3 2023/06/19 19:49
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- 物理学 この波動関数の複素共役はなんですか? 2 2022/08/17 00:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
配列を逆順させて表示させる方...
-
Java、2の0乗~10乗の表示
-
java キーボード入力された値の...
-
論理演算子”||”またはの入力方法
-
java 入力 3 4 3 出力 ABC DEFG...
-
*で正三角形を出力
-
Javaでキーボードから入力され...
-
テキストボックスに入力された...
-
javaプログラムについて
-
for文を使った累乗の計算方法に...
-
JAVAのfor文で困っています。
-
階乗
-
数独のJavaプログラム
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
キーボードから10人分の点数を...
-
7つ数字を表示したら改行すると...
-
javaで数独を解くプログラムに...
-
Javaの練習問題
-
javaのプログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
Java、2の0乗~10乗の表示
-
数値⇒漢数字変換 java
-
論理演算子”||”またはの入力方法
-
コマンドライン引数の例外処理...
-
JAVAのfor文で困っています。
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Java 入力した整数値の合計を、...
-
7つ数字を表示したら改行すると...
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
総称型ArrayList<E>への参照...
-
Randomメソッドの確率設定
-
Ctrl+Zが入力されると終了する...
-
学校で課題を出されて困ってい...
-
Java キーボードから負の数が入...
-
階乗の式
-
キーボードから10人分の点数を...
-
Java 配列<選挙>
おすすめ情報