2016-11-06 20 views
1

私はJavaを学んでおり、私が学んだことは、関数が返す値を指定する必要があるということです。voidよりも値を返さない場合は しかし、以下のプログラムでは、配列の値をvoid関数から変更することができます。誰も私にこれを説明できますか?void関数の戻り値

public class ArraysInMethods { 
    public static void main(String args[]){ 
     int rd[] = {2,3,4,5,6}; 
     change(rd); 

     for(int y: rd){ 
      System.out.println(y); 
     } 

    } 

    public static void change(int x[]){ 
     for(int counter = 0; counter<x.length;counter++){ 
      x[counter]+=5; 
     } 
    } 

} 

答えて

3

は、私は、Javaを学習し、私が学んだことから、あなたは関数の戻り、その値を指定する必要があるということですよ。

これは、値を返すメソッド、つまりvoid以外のメソッドに対してのみ有効です。これらのメソッドはの式を定義し、voidのメソッドはの文を定義します。あなたのchangeメソッドを呼び出す

は、戻り値を持たないという意味では、文です。ただし、実行中のプログラムの状態を変更することはできません。たとえば、変数に異なる値を指定するなどです。

しかし、以下のプログラムでは、配列の値をvoid関数から変更できます。

void関数から値を返していません。あなたがしているのは、配列の場所を変更することだけです。配列は参照渡しであるため、これは許可されています。

+0

ありがとうございます – JDOE