【JavaSE】09-パラメータと再帰
09-パラメータと再帰 ①.コマンドライン参照 ②.可変パラメータ ③.再帰 ①.コマンドラインパラメータ
開発者は、main()関数にコマンドパラメータを渡すことによって実現されるプログラムの実行時にメッセージを渡すことを望んでいる場合があります.パッケージメカニズムを導入する後、1つ実行したい.classファイルは、対応するパケットパスを直接入力します.パッケージでコンパイル:javac TestMethod.java cdを使用する..../srcディレクトリ に戻る完全なパケット名を入力してこそ、対応を実行することができる.classファイル:java com.ifinder.method.TestMethod
②.可変パラメータ
JDK 1から5から、Javaは同じタイプの可変パラメータをメソッドに渡すことをサポートします.宣言時に指定したパラメータタイプの後に3つのポイント(int...ages)を追加する必要があります(double...numbers)メソッドでは、可変パラメータ しか宣言できません.可変パラメータは、宣言された最後のパラメータ である必要があります.
③.再帰
定義:自分で自分を呼び出す!構成:再帰ヘッダ:いつ自分のメソッドを呼び出さないか.再帰的な頭がなければ、死の循環に陥る. 再帰体:メソッドを呼び出す必要があるのはいつですか.
利点:簡単なプログラムを用いて問題を解決することができ、大きな問題を小さな問題のネストに変換することができます.プログラムのコード量を大幅に削減し、限られた文でオブジェクトの無限の集合を定義できます.欠点:深層の再帰は往々にして大量のメモリ資源を占有し、時空の複雑さを高める.再帰的に解決できない問題は、決して再帰的に使用しないでください.使わなくてもいい
開発者は、main()関数にコマンドパラメータを渡すことによって実現されるプログラムの実行時にメッセージを渡すことを望んでいる場合があります.パッケージメカニズムを導入する後、1つ実行したい.classファイルは、対応するパケットパスを直接入力します.
②.可変パラメータ
JDK 1から5から、Javaは同じタイプの可変パラメータをメソッドに渡すことをサポートします.宣言時に指定したパラメータタイプの後に3つのポイント(int...ages)を追加する必要があります(double...numbers)
public class ChangeableParameter {
public static void main(String[] args) {
//
printMax(12,12,1,2123,2,342,34,234,4,5,34,5,345,3,453453,4);
printMax(new double[] {
35,56,23,65,76,24});
}
public static void printMax(double... nums) {
if(nums.length == 0){
System.out.println("No Argument Passed!");
return;
}
double result = nums[0];
for (int i = 0; i < nums.length; i++) {
if(nums[i] > result) result = nums[i];
}
System.out.println("The Max Vlaue Is:" + result);
}
}
③.再帰
定義:自分で自分を呼び出す!構成:
利点:簡単なプログラムを用いて問題を解決することができ、大きな問題を小さな問題のネストに変換することができます.プログラムのコード量を大幅に削減し、限られた文でオブジェクトの無限の集合を定義できます.欠点:深層の再帰は往々にして大量のメモリ資源を占有し、時空の複雑さを高める.再帰的に解決できない問題は、決して再帰的に使用しないでください.使わなくてもいい
public class RecursionMethod {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double n = scanner.nextDouble();
System.out.println(f(n));
}
//
public static double f(double n){
if(n == 0) {
System.out.println(1);
return 1;
}
if(n == 1){
// , 1 , 1
return 1;
}else{
// , 1
return n*f(n-1);
}
}
}