- ベストアンサー
練習問題で解答が理解出来ない
- 練習問題で解答が理解できず困っています。
- 購入した練習問題でドリルの内容が理解できません。
- CalcクラスのメソッドcalcArr内の一部の行が理解できません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
int[] calcArr(int[] data){ 上記の行は理解できますか? ()内で書かれているのは、引数としてintの配列が、dataという名前で渡されます。 new int[data.length] intの配列を新しく作成。 配列の個数はdata.length、つまり引数で渡された配列と同じ個数で作成。 int[] r = 作成した配列を、rという名前の変数に格納する。 一応念のため最初に戻って int[] calcArr(int[] data){ 行頭のint[]は、戻り値としてintの配列を返すよってこと。 あとは課題内容の >引数の配列値を2乗して別の配列に格納し、それを戻り値とする って部分ですね。
その他の回答 (3)
- chie65536(@chie65535)
- ベストアンサー率44% (8742/19841)
>実は、配列を使ったコードで、new を使うときと使わないときの区別がわかりません。 「関数を抜けたあと、配列を残すか、残さないか」で決まる。 int[] calcArr(int[] data){ int[] r =new int[data.length]; return r; } の場合、関数を抜けた時(returnした時)に「rがnewされたまま」になって居ないと「関数の呼び出し元」で結果として返ってきた配列を利用できない。 public static void main(String[] args) { String[]str ={"レッド","イエロー","ブルー"}; for(int i=0; i<str.length; i++){ System.out.println(str[i]); } } の場合、strは「関数から抜けたら不要」になるので「関数から抜けた瞬間、自動的に消えて欲しい」から「newを付けないで宣言」する。
お礼
御回答ありがとうございました。 納得出来ました。本当にありがとうございました。
- chie65536(@chie65535)
- ベストアンサー率44% (8742/19841)
data.length個の要素を持つintの配列を動的に確保して、それをintの配列rに割り当てている
お礼
御回答有難う御座います。 実際に画面表示させてみて見たいので、コードを書き直して 改めて、質問させて頂きます。 御指導有難う御座いました。
- D-Matsu
- ベストアンサー率45% (1080/2394)
戻り値用のint配列rを、引数dataと同じ長さで作成しています。
お礼
御回答ありがとうございました。 今、画面表示するように、コードを書き直して 改めて、質問させて頂きます。 御指導有難う御座いました。
お礼
御回答ありがとうございました。 おかげ様でやっと理解出来ました。 御指導有難う御座います。 実は、配列を使ったコードで、new を使うときと使わないときの区別がわかりません。 下記のようにnewがないときもある。 public class Samp { public static void main(String[] args) { String[]str ={"レッド","イエロー","ブルー"}; for(int i=0; i<str.length; i++){ System.out.println(str[i]); } } } newを使うのかどうかはどうやって判断すればよいか、 教えて頂きたく、宜しく御願い申し上げます。