2017/08/25 公開
・配列を返すメソッド
ここでは、メソッドの中で配列を生成する方法と、すでに生成している配列をメソッドに渡すして、その値を変更する2つの方法をJavaのソースコードで説明します。
以下が、そのサンプルコードと実行結果です。
ReturnSample1.java ← クリックしてダウンロードページに移動001: public class ReturnSample1 { 002: // 1~numberの値を格納した配列を返す 003: // 配列はメソッド内で生成 004: static double[] func1( int number ) 005: { 006: // numberが0以下の場合、nullを返す 007: if ( 0 > number ) return null; 008: 009: // number個の配列を作成 010: double[] v = new double[ number ]; 011: 012: // 配列に1からの連番を格納 013: for ( int i = 0; i < v.length; ++ i ) 014: v[ i ] = (double)( i + 1 ); 015: 016: // 配列を返す 017: return v; 018: } 019: 020: 021: // 配列を引数として渡し、1~numberの値を格納する 022: static boolean func2( double[] v ) 023: { 024: // vがnullの場合、falseを返す 025: if ( null == v ) return false; 026: 027: // 配列に1からの連番を格納 028: for ( int i = 0; i < v.length; ++ i ) 029: v[ i ] = (double)( i + 1 ); 030: 031: // trueを返す 032: return true; 033: } 034: 035: 036: public static void main( String[] args ) { 037: int i; 038: 039: // 配列をメソッド内で生成するfunc1を呼び出す 040: System.out.println( "■実行結果1" ); 041: double[] v1 = func1( 10 ); 042: if ( null != v1 ) { 043: for ( i = 0; i < v1.length; ++ i ) { 044: System.out.println( v1[ i ] ); 045: } 046: } 047: System.out.println(); 048: 049: // 生成された配列を渡すメソッドfunc2を呼び出す 050: System.out.println( "■実行結果2" ); 051: double[] v2 = new double[ 10 ]; 052: if ( true == func2( v2 ) ) { 053: for ( i = 0; i < v2.length; ++ i ) { 054: System.out.println( v2[ i ] ); 055: } 056: } 057: } 058: }
ReturnSample1を実行
C:\talavax\javasample>java ReturnSample1
実行結果
■実行結果1 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 ■実行結果2 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
2つの方法で同じ結果が得られていることが分かります。
ここからは、このソースコードを上から順番に解説していきます。
001: public class ReturnSample1 {
クラス名を、ReturnSample1としています。
002: // 1~numberの値を格納した配列を返す 003: // 配列はメソッド内で生成 004: static double[] func1( int number )
配列の個数numberを引数として渡し、生成したdouble型の配列に1.0からnumberを格納するメソッドです。
006: // numberが0以下の場合、nullを返す 007: if ( 0 > number ) return null;
個数numberが0未満のとき、戻り値をnullで返し、このメソッドを抜けます。
009: // number個の配列を作成 010: double[] v = new double[ number ];
012: // 配列に1からの連番を格納 013: for ( int i = 0; i < v.length; ++ i ) 014: v[ i ] = (double)( i + 1 );
double型配列に1.0からの連番を格納しています。このとき、iはint型なのでdouble型に型キャストしています。
016: // 配列を返す 017: return v;
021: // 配列を引数として渡し、1~numberの値を格納する 022: static boolean func2( double[] v )
既に生成済のdouble型配列を引数として渡し、その配列の中を1.0からnumberに変更するメソッドです。
024: // vがnullの場合、falseを返す 025: if ( null == v ) return false;
配列vがnullのとき、戻り値としてfalseを返し、このメソッドを抜けます。
027: // 配列に1からの連番を格納 028: for ( int i = 0; i < v.length; ++ i ) 029: v[ i ] = (double)( i + 1 );
double型配列に1.0からの連番を格納しています。このとき、iはint型なのでdouble型に型キャストしています。
031: // trueを返す 032: return true;
trueを返します。
036: public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
039: // 配列をメソッド内で生成するfunc1を呼び出す 040: System.out.println( "■実行結果1" ); 041: double[] v1 = func1( 10 ); 042: if ( null != v1 ) { 043: for ( i = 0; i < v1.length; ++ i ) { 044: System.out.println( v1[ i ] ); 045: } 046: } 047: System.out.println();
メソッド内で配列を生成するfunc1に10を引数と渡した結果を表示しています。
050: System.out.println( "■実行結果2" ); 051: double[] v2 = new double[ 10 ]; 052: if ( true == func2( v2 ) ) { 053: for ( i = 0; i < v2.length; ++ i ) { 054: System.out.println( v2[ i ] ); 055: } 056: }
あらかじめ生成している配列を渡して値を変更するメソッドfunc2を呼び出して、結果を表示しています。
■関連コンテンツ
Javaの配列 | 同じ型の変数をまとめた配列について解説 |
Javaの変数変数は、プログラムの中で値を入れておく入れ物のようなものです。 |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告