Java Basic for文 〜Step1_3_1〜

イントロダクション

ひと通り、変数の扱いなど理解したら今度は、ループや条件分岐などを理解します。

こんな感じです。余計な音が入っています。

ここら辺の文法を理解したらロジックを組むのが楽しくなると思います。

具体的には、「条件分岐」と「ループ」を使って、例えば「じゃんけんゲーム」を作ってみるとか、何かしらのアイディアを実装するとか。。。

フローチャートを書いてみるのも良いと思います。

<フローチャートの例>

兎にも角にも、「何を?」「どのように?」「どういう順番で?」実行するのか?を考えるところがロジックを組むために考えるところだと思います。
筆者は、今(2023-03-03現在)テキストRPGを作成するアプリを作ろうとしています。
詳細は、リンク先に記載しています。Githubです。アイディアの共有ができれば幸いです。

for文

いきなりですが、for文についてやります。※バグが入っております。それはどこでしょうか?

public static void main(String[] args) {
   // String型の配列を初期化
   String[] moji = {"abc", "def", "ghi"};
   // コンソール出力する変数
   String result = "";
   /* 【書き方】
    * for( 初期値; ループ条件; ループするときの処理) {
    *     // 何かしらの処理
  * }
    */
   for( int i = 0; i < 4; i++) {
      result += moji[i];
   }
   System.out.println("配列を繋げると: " + result);
}

初めにString型の配列を初期化しています。
ループして表示するために変数を用意しました。
そして、コンソール出力用の変数「result」
for文を開始いたします。

for文の文法

上記のソース部分にも記載しましたが、一応
1行大枠のみを記載すると以下のようになります。
for( .... ) { / 処理 /}

「for(」に続き
「int i = 0」の部分では使用する変数を初期化しています。
「i < 4」はループ条件、「i」が4より小さいときループします。
「i++」はfor文の中上の「/ 処理 /」の部分を一周したら行う処理です。

<書き方>

for (初期化; ループ条件; 後処理) {
   // 何かしらの処理
}

<サンプル>

for (int i = 0; i < 10; i++) }
   // 何かしらの処理
}
  1. 変数「i」を0で初期化、これでカウンターをセットする。
  2. 「i」が10より下(i < 10)の間ループする。
  3. 何かしらの処理が1回終わったら後処理(i++)を行う。

ちなみに、for文で無限ループするとこんな感じになります。

// 何も書いていないのは「処理なし」ということ
for (;true;) {
   // 何かしらの処理
}

サンプルコードと内訳


for( int i = 0 /* ① */; i < 4 /* ② */; i++ /* ④ */) {
    // ③
    System.out.println("Hello World=" + i);
}

① int 型の変数「i」を0で初期化して
②「i」が4より小さい間
③「Hello World」に「i」の値を付け足した文字を
コンソールに出力します。
1回目のループは、「i」が1なので「Hello World1」が表示され
2回目のループは、「i」が1なので「Hello World2」が表示される



となります。
④そして、コンソール出力をした後に「i++」の処理が走ります。
「i++」→「i」をインクリメントする=「i」に1を追加する
→ i = i + 1;
それから、次のループ処理を行う。。。

ざっと、コードを書いてみました。こんな流れになります。
サンプルコードはここからダウンロードしてください。

練習

やり方を眺めたら、次は実行してみるのがポイントです。プログラミングスキルとして要求されるものは「技術」と「理論」です。
技術はあれこれと考えるより手を動かす」のが大事です。プログラミングスキルという意味では、これが半分、
もう半分は理論です。「理論は、あれこれと考える」ことです。※おおざっぱな話ですが。。。

練習問題

問題を解くときに、パッケージ作成などしてやるとクラス配置が整理できます。

問題1

1から10までを合計した値をコンソール(標準出力)に表示してください。

問題2

問題1で作成したコードをベースにして、底辺が3、高さが1から10まで変化するときすべての三角形の面積を表示してください。
※以下のように表示してください。「??」には計算結果が入ります。
(3 x 1) / 2 = ??
(3 x 2) / 2 = ??
(3 x 3) / 2 = ??


問題3

問題2のコードをベースにして、三角形の数が10, 9, 8, 7 ...となるとき、すべての三角形の面積の合計を表示して下さい。
※以下のように表示してください。「??」には計算結果が入ります。
(3 x 1) / 2 = ?? 三角形は10個で面積は???
(3 x 2) / 2 = ?? 三角形は9個で面積は???
(3 x 3) / 2 = ?? 三角形は8個で面積は???


でわでわ。。。

 

関連ページ

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す