• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:練習問題で解答が理解出来ない。)

練習問題で解答が理解出来ない

このQ&Aのポイント
  • 練習問題で解答が理解できず困っています。
  • 購入した練習問題でドリルの内容が理解できません。
  • CalcクラスのメソッドcalcArr内の一部の行が理解できません。

質問者が選んだベストアンサー

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.3

int[] calcArr(int[] data){ 上記の行は理解できますか? ()内で書かれているのは、引数としてintの配列が、dataという名前で渡されます。 new int[data.length] intの配列を新しく作成。 配列の個数はdata.length、つまり引数で渡された配列と同じ個数で作成。 int[] r = 作成した配列を、rという名前の変数に格納する。 一応念のため最初に戻って int[] calcArr(int[] data){ 行頭のint[]は、戻り値としてintの配列を返すよってこと。 あとは課題内容の >引数の配列値を2乗して別の配列に格納し、それを戻り値とする って部分ですね。

NEWYORKERS
質問者

お礼

御回答ありがとうございました。 おかげ様でやっと理解出来ました。 御指導有難う御座います。 実は、配列を使ったコードで、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を使うのかどうかはどうやって判断すればよいか、 教えて頂きたく、宜しく御願い申し上げます。

その他の回答 (3)

回答No.4

>実は、配列を使ったコードで、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を付けないで宣言」する。

NEWYORKERS
質問者

お礼

御回答ありがとうございました。 納得出来ました。本当にありがとうございました。

回答No.2

data.length個の要素を持つintの配列を動的に確保して、それをintの配列rに割り当てている

NEWYORKERS
質問者

お礼

御回答有難う御座います。 実際に画面表示させてみて見たいので、コードを書き直して 改めて、質問させて頂きます。 御指導有難う御座いました。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

戻り値用のint配列rを、引数dataと同じ長さで作成しています。

NEWYORKERS
質問者

お礼

御回答ありがとうございました。 今、画面表示するように、コードを書き直して 改めて、質問させて頂きます。 御指導有難う御座いました。

関連するQ&A