• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javaプログラム内容について)

Javaプログラムの処理内容についての質問

このQ&Aのポイント
  • Javaプログラムの処理内容についての質問です。
  • 添付資料の処理内容がわからず、違いを指摘して欲しいです。
  • 特にforループの処理内容とI++の使い方について教えてください。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>添付資料の処理内容がわからないので、どこが違うかご指摘ねがいます。 Javaに限らずプログラミングの初心者ですか? >1.mainのgetInversedArray(4,8,9)がint[]メソッドに飛ぶ 解釈に誤りがあります。 b2 = GetInversdArray(b); は次のように解釈します。 getInversedArray(b)は配列数b({4,8,9})の並び順を反転するためのサブルーチンです。 mainからサブルーチンを呼び出して配列数b2へ代入することを意味します。 >2.newで4 8 9を別々に扱えるようにする 配列数のnewはmainの配列数bを引き継いだ配列値です。 配列の要素はarray.lengthで算出されますのでnew[3]={4,8,9}がサブルーチンへ渡され、サブルーチンでは配列値aへ代入しています。 >3.forのa[i] = array[(array.length - 1) - i]が9 8 4を出力する←ココの処理が特にわからない i=0のとき、a[0]=array[(3-0)-1] → a[0]=array[2] → a[0]=9 i=1のとき、a[1]=array[(3-1)-1] → a[1]=array[1] → a[1]=8 i=2のとき、a[2]=array[(3-2)-1] → a[2]=array[0] → a[2]=4 >4.mainのforで、int[]メソッドの値を出力する 回答を省略する。 >for内では、(4 8 9)の値に対して、0から1ずつ足して~9までの10サイクルを計算しているから、10個の出力が出てきそうなのに、3個の出力しか出てきてない。あれ?という状態です。 提示のforループでは0~b.length未満(0~2)です。(bの要素数=b.length=3) 従って、3個の値が出力されます。 プログラムで命令したことは忠実に実行されますので予想と異なる結果が出力されたときはプログラマーの思考に誤りがあります。

noname#240076
質問者

お礼

初心者にご丁寧に答えて頂き大変感謝しております。 本当にわかり易く記載して頂き、流れがイメージすることができました。 ありがとうございました。

その他の回答 (2)

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.2

forについての理解が間違っています。「~9まで」なんてどこに書いてあるのでしょうか?

  • Kaneyan-R
  • ベストアンサー率42% (1340/3127)
回答No.1

これ、ソースを読む限り「配列の並びを逆にする」プログラムですけど? なので4,8,9なら、9,8,4と出力されますね。 今スマホしかないので、詳細な説明は書けません。

関連するQ&A