- ベストアンサー
Javaプログラムの処理内容についての質問
- Javaプログラムの処理内容についての質問です。
- 添付資料の処理内容がわからず、違いを指摘して欲しいです。
- 特にforループの処理内容とI++の使い方について教えてください。
- みんなの回答 (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個の値が出力されます。 プログラムで命令したことは忠実に実行されますので予想と異なる結果が出力されたときはプログラマーの思考に誤りがあります。
お礼
初心者にご丁寧に答えて頂き大変感謝しております。 本当にわかり易く記載して頂き、流れがイメージすることができました。 ありがとうございました。