オーダーメイドコース
icon
icon

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 /

を入力すると

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

が表示されます。

 

[PR] 未経験からWebエンジニアを目指す方法とは

監修してくれたメンター

長屋雅美

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。