2014年01月15日
JavaEEの前に復習をしてみる その7 配列とfor文
私が、Javaの勉強を始めた時は、何かとRPGの処理に例える。
といった感じで遊びの中で学習していきました。
Java SE Silverの知識をさくっと頭に入れられたのは、
根底にJavaの知識があったからで、資格勉強から始めていたら、
プログラミングは挫折していたでしょう。。。
というわけで、今回は、for文と、配列を使ったプログラム。
道具屋で、薬草を10個買います。
そして、その薬草を道具箱にしまっていく。というイメージ。
String toolbox1 = "薬草0";
String toolbox2 = "薬草1";
String toolbox3 = "薬草2";
String toolbox4 = "役僧3";
・
・
・
とかやっていると、10くらいは頑張れますが、誤字脱字や、
やたらtoolboxが増えて、道具一個しか走らない道具箱10個を抱えて
勇者は冒険に旅立ちます。箱10個引きずった勇者は、かっこよくないですねw
【イメージ図】勇者_[1][1][1][1][1][1][1][1][1][1]
箱を一つにするには、配列という方法ですっきりさせます。
String[] toolbox = new String[10];
上記のように書くことで、文字列型のtoolboxに0から10個の配列を与えます。
一個の箱に、10個入るよう仕切りを付けたような形ですね。
[0|1|2|3|4|5|6|7|8|9]
左から2個目に薬草を入れるのであれば、
toolbox[1] = "薬草";
これでOKです。
よし、10個入る道具箱ができたぞ!
それでは、10個薬草をしまっていくか・・・
toolbox[0] = "薬草";
toolbox[1] = "薬草";
toolbox[2] = "役僧";
・
・
ちょっと待った!!変わってないじゃないかww
道具箱にポンっと置いたら自動的に10個並べたい。
そういう時は、for文で処理させましょう。
for (int i=0; i < toolbox. length; i++){
toolbox[i] = "薬草" +i;
}
ここで言う iは、10回処理させるため専用の変数。
toolbox. lengthは、toolbox自体の宣言した値の最大値。
i++は、for文が一回回ったら、iに1ずつ加算される。
これで10回まわります。
そして、for文の中にはtoolbox[i]に薬草+iが代入される処理が含まれているので、
1回for文が回るごとに、toolboxのそれぞれの領域に、薬草がしまわれている。
プログラムは、これだけ。
package test;
public class Tools {
public static void main (String [] args){
String[] toolbox = new String[10];
for (int i=0; i < toolbox. length; i++){
toolbox[i] = "薬草" +i;
System. out .println(toolbox[i]);
}
}
}
結果。
わかりやすくするため、薬草に番号を付けてその場で出力もさせちゃう。
薬草0
薬草1
薬草2
薬草3
薬草4
薬草5
薬草6
薬草7
薬草8
薬草9
これで、ループ文と配列を思い出しました。
まだ、JavaEEにいくには、長いね・・・。
ちなみに、下記がカッコいいと言っているわけではありませんw
【イメージ図】勇者_[0|1|2|3|4|5|6|7|8|9]
といった感じで遊びの中で学習していきました。
Java SE Silverの知識をさくっと頭に入れられたのは、
根底にJavaの知識があったからで、資格勉強から始めていたら、
プログラミングは挫折していたでしょう。。。
というわけで、今回は、for文と、配列を使ったプログラム。
道具屋で、薬草を10個買います。
そして、その薬草を道具箱にしまっていく。というイメージ。
String toolbox1 = "薬草0";
String toolbox2 = "薬草1";
String toolbox3 = "薬草2";
String toolbox4 = "役僧3";
・
・
・
とかやっていると、10くらいは頑張れますが、誤字脱字や、
やたらtoolboxが増えて、道具一個しか走らない道具箱10個を抱えて
勇者は冒険に旅立ちます。箱10個引きずった勇者は、かっこよくないですねw
【イメージ図】勇者_[1][1][1][1][1][1][1][1][1][1]
箱を一つにするには、配列という方法ですっきりさせます。
String[] toolbox = new String[10];
上記のように書くことで、文字列型のtoolboxに0から10個の配列を与えます。
一個の箱に、10個入るよう仕切りを付けたような形ですね。
[0|1|2|3|4|5|6|7|8|9]
左から2個目に薬草を入れるのであれば、
toolbox[1] = "薬草";
これでOKです。
よし、10個入る道具箱ができたぞ!
それでは、10個薬草をしまっていくか・・・
toolbox[0] = "薬草";
toolbox[1] = "薬草";
toolbox[2] = "役僧";
・
・
ちょっと待った!!変わってないじゃないかww
道具箱にポンっと置いたら自動的に10個並べたい。
そういう時は、for文で処理させましょう。
for (int i=0; i < toolbox. length; i++){
toolbox[i] = "薬草" +i;
}
ここで言う iは、10回処理させるため専用の変数。
toolbox. lengthは、toolbox自体の宣言した値の最大値。
i++は、for文が一回回ったら、iに1ずつ加算される。
これで10回まわります。
そして、for文の中にはtoolbox[i]に薬草+iが代入される処理が含まれているので、
1回for文が回るごとに、toolboxのそれぞれの領域に、薬草がしまわれている。
プログラムは、これだけ。
package test;
public class Tools {
public static void main (String [] args){
String[] toolbox = new String[10];
for (int i=0; i < toolbox. length; i++){
toolbox[i] = "薬草" +i;
System. out .println(toolbox[i]);
}
}
}
結果。
わかりやすくするため、薬草に番号を付けてその場で出力もさせちゃう。
薬草0
薬草1
薬草2
薬草3
薬草4
薬草5
薬草6
薬草7
薬草8
薬草9
これで、ループ文と配列を思い出しました。
まだ、JavaEEにいくには、長いね・・・。
ちなみに、下記がカッコいいと言っているわけではありませんw
【イメージ図】勇者_[0|1|2|3|4|5|6|7|8|9]
【Javaの最新記事】
この記事へのコメント
こんばんはー。
最近はインフラの奴隷になっていて、お友達にしてもらえないです。。。
バリエーション。。。全然ないです。
人様なコードが読めないのも、このバリエーションのなさもありますね。
やっぱり、現場の経験がないと吸収できないものはありますよね。。。はびさんは、初めからCのプログラマーだったわけではないんですね。
インフラから早く抜けだして、コーディングがしたい。
こんばんはっ Habitat ですっ
配列はまず、理解しないとPGは組めませんよね
というか、某サッカー漫画なみに、オトモダチにならないといけないぐらいですね。。
まず、データをどうバッファリングするかでかなり作成するPGの骨格が決まってくるので、
配列をはじめデータを扱えるバリエーションは持っておくに越したことはないです
私は、前の派遣先で C# で処理作成するところで手法に行き詰まり、
Dictionary を多様して切り抜けたんですが、他の担当者に 以前VB やってたでしょ?
っと見破られましたww
C# も近年になってやっと扱いだしたんですが、まだまだ引き出しが少ないなぁと実感しました。。
こういうとこは、いい人から技術を吸収しないとねっ!!
こんばんは。
ポインタとか、そういう知識は私にはないのでわかりませんが、
似たようなものなら、jspで作りました。HTMLにタグと一緒にプログラムを埋め込んで、マップをランダムで作るようなもの。
アプレットとか使えば、Javaでもゲームのような画面で作ることはできますが、アプレットは全然わかりません。
ほんと、Javaは広い・・・。
私も、高校生の時に挫折しました。
それで、頭が固くなった今、その頃の屈辱を取り戻そうとしています。
Javaでしたか、私の時は、VBでした。
んー、私の自己満足、記憶呼び覚まし記事で、やる気に慣れるのだろうか・・・無理かなーww
私も同じく、がっつり文系です。数学は、赤点すれすれでしたww
確かにif文でのフラグ制御とループ命令覚えたら基本的な土台は作れる希ガスwww。
マップの座標配置とかは出来そうにないけど^^;。
Cならポインタ概念を使うと思うけど、JAVAはオブジェクト指向だからまた違う方法で行うのかなw。
どっちにしろわけわかめwww。
もっとも、プログラムまったくわからないんだけどね^^;。
時間が取れたらこの講義でちょっと勉強してみるかな(ニヤw)。
何気に、若い頃にセンセーにプログラムの才能ないから諦めろって言われたんだけどね(ちょw)。
まだIT業界を志す前の話だけどね^^;。
何気にJAVAを学習してたんだけど、私だけプログラム作れなくて先生が呆れてたっけ(だめぽwww)。
普通センセーって生徒を見捨てないものだけど、よっぽど私がどうしようもない生徒だったんだろうねorz。
それが切欠で、プログラムをきっぱり諦めた痛い黒歴史(笑)だったりするorz。
さぁ、そんな私に果たしてプログラムが組めるのかなw。
shadeさんの腕の見せ所だね(ダマレこの他力本願がwww)。
ちなみに数学全く出来ない完全文系なので、ご注意を(ダマレwww)。
たまに買い物のお釣りですら間違える時があるくらいだし(ちょw)。
それでよくエンジニアなんてやってたものだwww。
おはようございます。
RPGツクール懐かしい!私は一本仕上げましたよ。
内容は忘れてしまいましたが、設計もなにもしてないので、
めちゃめちゃなストーリーだったのは間違いないですね。
この連載記事を追っていけば、もしかしたら作る基礎力か身に付くかもしれません。
ループとif文さえあれば、コードの美しさを抜きにすれば、なんとか形にできる気がしてますww
ゲームって、作るのにすごい時間がかかるので、
やりたいけど、作ってる途中で他にやりたいことが出てきて放置。といった流れが想定できてしまいますw
>RPGの処理に
プログラムはさっぱりわからんけど、RPGは作ってみたい今日この頃(ダマレw)。
もっとも、RPGツクールですら挫折しましたが(ダメすぐるwww)。
尚、WOLF RPGエディター(ウディタ)はもっと難しくて即行で諦めますタwww。
んなわけで、是非面白いRPGを作ってくだはい(ナニカ違うwww)。