Javaで電卓プログラムを作成する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaで電卓プログラムを作成する方法について解説しています。ここでは標準入力から加算・減算・乗算・除算を行うことができる電卓プログラムを作成します。サンプルコードで処理の流れと動作を確認しましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

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 /

を入力すると

数値 演算子 数値 演算子 数値 … の順に引数を指定してください

が表示されます。

 

[PR] Javaで挫折しない学習方法を動画で公開中

監修してくれたメンター

長屋雅美

独立系SIerで7年勤務後、現在はフリーのエンジニアとして自宅をオフィスとして活動しています。
JavaやC♯、shellscriptを用いた開発を主に担当し、TechAcademyではJavaコースを担当しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyでは、Java講座を開催しています。

JavaやServletの技術を使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。