31.4 関数の利用

ここまでの内容で,整数と小数およびそれらの四則演算はできるようになりましたが,計算の種類はたくさんあり四則演算だけでは対応できないものがあります.

例えば,計算に平方根を使いたいときは,四則演算でも「開平法」や「ニュートン法」により計算できますが,それらの計算式を毎回書くのは大変ですしそこに大量の式を書くと本筋の計算は何をしているのかわからなくなります.

そこでプログラム言語では,数学で “√” という記号が使われるのと同様に,変数を与えたらその値に基づいた処理を行い計算結果を返す関数という機能があります.なお,プログラム言語ではここでの変数のことを引数(ひきすう)といい,計算結果を戻り値といいます.

関数の利用

正確には Java では “関数” とは呼ばずに “メソッド” と表現しますが,そのメソッドを使うには,プログラムの中で

メソッド名(引数1, 引数2, ...)

と書きます.このように書くとメソッドに処理を行わせたり,戻り値を式で使うことができます.

Java において平方根を計算するには “Math.sqrt” を使います.戻り値は必ず小数になっています.さっそく試しに使ってみましょう.

// Program.java: 平方根 class Program { public static void main(String[] args) { System.out.println(Math.sqrt(2)); System.out.println((Math.sqrt(3 + 1) + 4) / 3); } }
1.4142135623730951 2.0

きちんと計算されていることがわかると思います.

様々な関数

Java では様々な数学的なメソッドが使えます.

// Program.java: 数学関数 class Program { public static void main(String[] args) { System.out.println(Math.sqrt(2)); // 平方根 System.out.println(Math.sin(3.14) + Math.cos(3.14) + Math.tan(3.14)); // 三角関数 System.out.println(Math.asin(1) + Math.acos(1) + Math.atan(1)); // 逆三角関数 System.out.println(Math.exp(1) + Math.log(1)); // ネイピア数を底とする指数・対数関数 System.out.println(Math.pow(2, 0.5)); // 指数関数 } }
1.4142135623730951 -0.99999873374746 2.356194490192345 2.7182818284590455 1.4142135623730951

今までにさんざん使っている “System.out.println” もメソッドで,引数を出力する処理だけ行い戻り値を計算するわけではありません.また,“main” というのはメソッドを作っていて,これについてはhwb31.6 関数の定義で触れます.