どうも、脱サラ理学療法士のぼんぼりです。
javaプログラミング学習で苦戦していますので、その紆余曲折を実況しています。
「やさしいJava」という本に学習をサポートしてもらっていますが、なかなか理解が進みませんね。
ちなみに、今回のテーマは「多次元配列」です。
for文で苦しんだ僕が、また繰り返しと入れ子で更に苦しむことになります。
配列に負けるな
配列っていっても、いちどわかってしまえばそんなに難しくはないんですね。
冷静に一行ずつコードの意味を理解していけば「あ、そうだったのね」てな具合でストンと腑に落ちてくれます。
ただ、その腑に落ちたときにしっかり定着させないと、とたんにわからなくなります。
記憶が蒸発してしまうので、一度理解できたことなのにわからなかったりするんですよ。
繰り返しや配列のコーディングをしていると、文字数も増えてくるので何をしているのか把握できないなんてしょっちゅうあります。
多次元配列って?
もう名前からしていかついネーミングですよね。
数学嫌いの僕からしたら、難解な印象しか持てないです。
で、これが何を意味しているのかというと「配列の中に配列を入れること」なんですよね。
イメージとしては、大きな箱の中に小さな箱を入れこんでいる感じです。
マンションでたとえると、ある地区に建てられているマンションの数が親の配列要素で、マンションの部屋が子の配列要素といった具合でしょうか。
なので、コーディングではマンションの数と部屋の数を扱うことになります。
「mannsyon.length」みたいなね。
この変数定義は、親の配列要素です。
外枠の定義ともいえます。
続いて内側の枠を定義する必要があるのですが、マンションの部屋数なんてかなりあるのでいちいち数えてられないんですよ。
そこである構文を使います。
あの、for文です。
for文で[番号]を決めてあげれば、あとはおのずと繰り返して部屋数を数えてくれるという仕組みですね。
for文便利!
なんかどこかでみたことある…for文か!
ただ、for文を使いながらふと気がついたことがあります。
それは、配列の配列という仕組み自体が、for文のネストと似ているんですよね。
入れ子構造で複雑になってしまうっていうところはとても似ています。
ただ、この入れ子構造がないと手間がかかって仕方がないんですよ。
これがないと、何個System.out.printすりゃいいのって話ですからね。
効率よくコードを整えていくためには、やっぱりfor文や配列は欠かせないんですね。
どの要素をキーボード入力とつなげるか
やっぱり悩むのはこういったコニャコニャしたところですよ。
特に、キーボード入力は、どこで変数を宣言するかで出力の場所が変わりますから。
「String b=a.readLine」でずっと固定したまま、延々と同じ変数に代入し続けているってこともありますからね。
入力の種類を変えたいのであれば、どこかで新しく変数を宣言しなければなりません。
そういった構文の使い方が理解しきれていなくて、まぁ困りましたね。
いや、現在進行形で困ってはいますけども(^_^;)
まとめ:複合的に構文を使えるか
いろんな分野を見ていって、少しずつ特徴が理解できるようになってきました。
でも、いざそれを使ってコーディングしてみなさいよと言われても、まったく応用が聞きません。
サンプルコードを見ながらでないと、とたんに迷子になってしまうんですよ。
プログラミング迷子です。
もっと勉強して、いずれは自走できるようになりたいですね。


コメント