Javaで電卓プログラムを作成する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaで電卓プログラムを作成する方法について解説しています。ここでは標準入力から加算・減算・乗算・除算を行うことができる電卓プログラムを作成します。サンプルコードで処理の流れと動作を確認しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Javaで電卓プログラムを作成する方法を解説します。
実際にプログラムを書いて説明しているので、ぜひ理解しておきましょう。
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
電卓プログラムを作成する方法について詳しく説明していくね!
お願いします!
Javaで加減乗除の電卓プログラムを作成
加減乗除の計算を行うプログラムを作成します。計算する値は標準入力から取得します。
標準入力で
1 + 5 * 3
というように半角スペース区切りで数値と演算子を入力すると、先頭から順に計算した結果を標準出力に返します。
上記の礼の場合は18となります。
実際に作成してみよう
標準入力か入力情報の取得はjava.util.Scannerクラスを使います。入力情報を半角スペース区切りで配列とし、配列の要素が 数値 演算子 数値 演算子 数値 の順になっていることをチェックします。
入力情報に問題なければ、先頭から順に演算を行います。演算には、+,-,*,/ の四則演算子を使います。
import java.util.Scanner; public class Sample { public static void main(String[] args) throws InterruptedException { Scanner sc = new Scanner(System.in); // 標準入力を1行ずつ読み出す。 out : while (sc.hasNextLine()) { String line = sc.nextLine(); String[] arr = line.split(" "); double total = 0; if (arr.length < 3 || ((arr.length != 3) && (arr.length % 3 != 2))) { System.out.println("数値 演算子 数値 演算子 数値 … の順に最低3つの引数を指定してください"); continue; } else { // 先頭の数値 if (checkNum(arr[0])) { //数値変換 total = Double.parseDouble(arr[0]); } for (int i = 0; i <= ((arr.length - 3) / 2); i++) { //先頭の数値以降は一つとびに演算子と数値が続く if (checkOperator(arr[i * 2 + 1]) && checkNum(arr[i * 2 + 2])) { //演算子によってtotalに合算する処理を変更 switch (arr[i * 2 + 1]) { case "+": total = total + Double.parseDouble(arr[i * 2 + 2]); break; case "-": total = total - Double.parseDouble(arr[i * 2 + 2]); break; case "*": total = total * Double.parseDouble(arr[i * 2 + 2]); break; case "/": total = total / Double.parseDouble(arr[i * 2 + 2]); break; } } else { System.out.println("数値 演算子 数値 演算子 数値 … の順に引数を指定してください"); continue out; } } System.out.println("合計:" + total); } } sc.close(); } // 数値チェック 数値の場合にtrue 数値以外の場合false private static boolean checkNum(String str) { try { // double型へ変換し、エラーが出なければ数値とみなす Double.parseDouble(str); } catch (NumberFormatException e) { return false; } return true; } // 演算子チェック private static boolean checkOperator(String str) { if (str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/")) { return true; } else { return false; } } }
実行するとコンソールが入力待ちの状態となります。コンソールに
12 - 5 * 9
を入力すると、結果は
合計:63.0
となります。コンソールに
18
のみを入力すると
数値 演算子 数値 演算子 数値 … の順に最低3つの引数を指定してください
が表示されます。
1 + 9 * * 60 9 /
を入力すると
数値 演算子 数値 演算子 数値 … の順に引数を指定してください
が表示されます。
監修してくれたメンター
長屋雅美
独立系SIerで7年勤務後、現在はフリーのエンジニアとして自宅をオフィスとして活動しています。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。