public class M11{
public static void main(String[] args){
int[] a = {1,2,3};
int b = 4;
int[] d = m1(a);
int c = m2(b);
for (int i:a){
System.out.println(i);
}
for (int i=0;i<d.length;i++){
System.out.println(d[i]);
}
System.out.println("456456で正常です。");
System.out.println(b);
System.out.println(c);
System.out.println("45で正常です。");
}
public static int[] m1(int[] y){
for (int i=0;i<y.length;i++){
y[i]+=3;
}
return y;
}
public static int m2(int b){
b++;
return b;
}
}
現在Javaの基礎を学んでいる初心者です。
参照渡しと値渡しの違いを実感するために、上記のようなソースコードを作成しました。
配列「d」の表示とメソッド「m1」の中のfor文を、初めは拡張for文で書いていたのですが、コンパイルエラーが出ていました。しかし、上記のような通常のfor文に変えることにより、コンパイルエラーがでなくなりました。参考書を読んでいて、配列を回す際には、通常のfor文も拡張for文も違いが無いように説明されていたのですが、なぜこのような違いが出ているのでしょうか?
よろしければ、なぜ上記のソースコードにおいては、通常のfor文でなくてはならないのか?を教えていただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/02/19 09:53