Javaのプログラムはクラス宣言の集まりから成り立っているが、それぞれのクラスの中には複数のメソッドを書くことが出来る。一つのメソッドとして実現すると大きくなる場合は、モジュールに分割して複数のメソッドとして実現した方が良い。ちなみに、手続き型プログラミング(procedural programming)ではプログラムをモジュール(module)に分割して、再利用可能な部品をプロシージャ(関数、サブルーチン)として実現する。
// 2辺の長さから斜辺の長さを求めるプログラム
import java.io.*; // おまじない
class Pytha2
{
public static void main(String[] args) throws IOException
{
String str;
double x, y;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("1辺の長さを入力して下さい。");
str = br.readLine();
x = Double.parseDouble(str);
System.out.println("もう1辺の長さを入力して下さい。");
str = br.readLine();
y = Double.parseDouble(str);
// 入力された2辺 x, y から斜辺の長さ z を求める
double z = pytha(x,y);
System.out.println("斜辺の長さは " + z + " です。");
System.out.printf("斜辺の長さは %.1f です。", z );
}
// 斜辺の長さを求めるメソッド(実は Math.hypot() を使えば一発)
// Pythagorasの定理:Pythagorean theorem、斜辺:hypotenuse
static double pytha( double x, double y )
{
return( Math.sqrt( x*x + y*y ) );
}
}
// end of Pytha2.java
|
![]() |
![]() |
![]() |
例: |
|
|
例2: |
|
// 階乗を求めるプログラム
import java.io.*; // おまじない
class Factr1
{
public static void main(String[] args) throws IOException
{
String str;
long n;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("整数を入力して下さい。");
str = br.readLine();
n = Long.parseLong(str);
System.out.println(n + "の階乗は" + fact(n) + "です。");
}
// 階乗を計算する関数
static long fact(long n)
{
if( n == 0 )
return( 1 );
else
return( n * fact(n-1) ); // 再帰呼び出しされている!
}
}
// end of Factr1.java