元小学校教員!がIT企業へ転職したリアルなブログ

公立の小学校教員を4年間勤めた後、IT企業へ転職しました。教育・転職・ITに関する情報を発信していきます。

【Javaで電卓プログラムをつくってみた】その①

f:id:akiho817:20200415235028j:plain

こんにちは。駆け出しプログラマーのakhです。


課題で、電卓プログラムを作ることになりました。
以下、概要です。

【コンソールを使った電卓プログラム】
概要:規定値を入力可能とし、コンソールに計算結果を表示する。

詳細:
・半角数値、+-*/、C(クリア)、=、.(小数点)のみを入力可能とする。
・入力チェックをし、異常終了が起こらない作りとする。
・四則演算を正しく行える事。
・規定値以外の入力項目はその内容が分かるエラーメッセージをコンソールに出力する。

その他:
・意味のある処理単位(機能単位)でメソッドを作成する事。
・比較する対象の文字列などは定数化する事。
・メソッドの可視性を考慮した作りにする事。


なかなか、初心者にとって、壁が大きい・・・。
私が最初に作ったプログラムは以下の通りです。

public static void main(String[] args) {
	//変数を3つ用意
	double num1 =0;
	double num2 = 0;
	char ope ;
	double answer=0;
	try{
		System.out.println("num1に数字を入れてください。");
		double input = new java.util.Scanner(System.in).nextDouble();
		System.out.println("");
		System.out.println("演算子を入れてください。");
		System.out.println("+, -, *, / のどれか  ");
		String inope = new java.util.Scanner(System.in).nextLine();
		System.out.println("");
		System.out.println("num2に数字を入れてください。");
		double input2 = new java.util.Scanner(System.in).nextDouble();
		if(inope.equals("+")){
			answer = (input+input2);
		}else if(inope.equals("-")){
			answer = (input-input2);
		}else if(inope.equals("*")){
			answer = (input*input2);
		}else{
			answer = (input/input2);
		}
		System.out.println("");
		System.out.println(input+ inope + input2+ "="+ answer);
	} catch(Exception e){
		System.out.println("例外が発生しました");
    	}
	}

C(クリア)の入れ方が分からなかったり、規定値のチェックもままならぬ…
続きは

Javaで電卓プログラムをつくってみた】その②へ