階乗の計算(関数の利用)

  Java においては,すべての関数がいずれかのクラス(下の例では,Test クラス)に含まれています.したがって,C/C++ のプログラムにおける 7 行目のような定義は不要になります.この例の場合,関数 kaijo に対して static 宣言されていますが,main 関数が static 宣言されている関係上,static 宣言しておかないと「kai = kaijo(n)」のような呼び出しが不可能になるからです.ただし,クラス Test のオブジェクトを生成し,そのオブジェクトを使用して関数を呼び出せば,関数 kaijo に対する static 宣言は不要です(プログラム中のコメントを参照).なお,static という言葉については,後ほど第Ⅲ部において説明します.
/****************************/
/* nの階乗の計算           */
/*      coded by Y.Suganuma */
/****************************/
import java.io.*;

public class Test {
	public static void main(String args[])
	{
	/*
		 データの入力
	*/
		int n = 0;
		try {
			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
			System.out.print("nの値を入力して下さい ");
			n = Integer.parseInt(in.readLine());
		}
		catch (IOException ignored) {}
	/*
		 階乗の計算
	*/
		double kai = kaijo(n);   // kai = (new Test()).kaijo(n); のようにすれば,
		                         // 関数kaijoに対するstatic宣言は不要
	/*
		 結果の出力
	*/
		System.out.println("   " + n + "の階乗は=" + kai);
	}

	/**************************/
	/* mの階乗               */
	/*      m : データ        */
	/*      return : nの階乗 */
	/**************************/
	static double kaijo(int m)
	{
		double s = 1.0;
		for (int i1 = 1; i1 <= m; i1++)
			s *= (double)i1;

		return s;
	}
}