JAVA簡易講座 4

きょうからあなたもジャワ言人 99/10/03
by Kensaku Hattori


←前頁 次頁→

その4(16進電卓2)

 前回の、16進の足し算をするプログラムを拡張します。キーボードからの 入力を受け付けるようにし、足し算だけでなく引き算・掛け算・割り算もできる ようにします。
C言語と同じ構文だということをみて頂ければ、「JAVAおそるるに足らず」 と思えることでしょう。
例によってソースファイル名は、calhex2.javaで作ってくださいね。

/**
	16進電卓
	使い方:java calhex2 16進数 演算子(+,-,*,/) 16進数

	@version 1.0,1999/10/03
	@author K.Hattori
*/
import java.io.*;

public class calhex2{
	public static void main(String[] args){
		//ローカル変数定義
		String	arg1 = "", arg2 = "";	//計算する数字
		String	enzan = "";		//演算子 +,-,*,/

		//キー入力の為には以下の準備が必要
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		//引数があったそれを計算する
		if( args.length >= 3){
			arg1 = args[0];
			arg2 = args[2];
			enzan = args[1];
		}else{
			try{
				System.out.print("16進数1->");
				arg1 = in.readLine();
				for( enzan=""; CheckEnzan(enzan)==false;){
					System.out.print("演算子(+,-,*,/)->");
					enzan = in.readLine();
				}
				System.out.print("16進数2->");
				arg2 = in.readLine();
			}catch( IOException e){
				System.out.println("入力エラー:" + e.getMessage());
			}
		}
		//C++のようにその場で変数定義も可
		int	result = 0;

		switch( enzan.charAt(0)){
		case '+':
			result = Integer.parseInt(arg1,16) + Integer.parseInt(arg2,16);
			break;
		case '-':
			result = Integer.parseInt(arg1,16) - Integer.parseInt(arg2,16);
			break;
		case '*':
			result = Integer.parseInt(arg1,16) * Integer.parseInt(arg2,16);
			break;
		case '/':
			result = Integer.parseInt(arg1,16) / Integer.parseInt(arg2,16);
			break;
		default:
			System.out.println("演算子異常:" + enzan);
			return;
		}
		//結果出力
		System.out.println( arg1 + enzan + arg2 + "="
			+ Integer.toHexString(result));
	}
	/**
		指定された演算子をチェックする
		@param 演算子文字列
		@return +,-,*,/の時はtrue。それ以外はfalse
	*/
	static boolean CheckEnzan(String enzan){
		if( enzan.equals("+") || enzan.equals("-")
			|| enzan.equals("*") || enzan.equals("/") ){
			return true;
		}else{
			return false;
		}
	}
}

制御構造について

入出力について

演算子について

文字列の扱いについて

変数の宣言について

サブルーチンについて

←前頁 次頁→

ポインタ:
  1. C言語を学ぶものが一度はつまづく難解な概念。
  2. 狩猟犬の一種。獲物を指し示す(ポイントする)能力に長けている ところから付いた名。C言語のポインタも犬の一種だと思えば分かり易い???