イントロダクション
ひと通り、変数の扱いなど理解したら今度は、ループや条件分岐などを理解します。
こんな感じです。余計な音が入っています。
ここら辺の文法を理解したらロジックを組むのが楽しくなると思います。
具体的には、「条件分岐」と「ループ」を使って、例えば「じゃんけんゲーム」を作ってみるとか、何かしらのアイディアを実装するとか。。。
フローチャートを書いてみるのも良いと思います。
<フローチャートの例>
兎にも角にも、「何を?」「どのように?」「どういう順番で?」実行するのか?を考えるところがロジックを組むために考えるところだと思います。
筆者は、今(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++) }
// 何かしらの処理
}
- 変数「i」を0で初期化、これでカウンターをセットする。
- 「i」が10より下(i < 10)の間ループする。
- 何かしらの処理が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個で面積は???
・
・
・
でわでわ。。。
関連ページ
- Java はじめて 1 〜メインメソッド〜
- Java はじめて2 〜メソッドを呼び出す〜
- Java はじめて3 〜コメントの書き方〜
- Java はじめて4〜練習問題をやってみる〜
- Java はじめて5 〜変数について〜
- Java はじめて6 〜変数について2、byte, char, boolean型〜
- Java はじめて7 〜配列とは、配列の使い方〜
- Java はじめて8 〜booleanとif~
- Java はじめて 9 〜switch文〜
- Java はじめて 10 〜ループ処理A: for文1〜
- Java はじめて 11 〜ループ処理A: for文2 拡張for文〜
- Java はじめて12 〜ループ処理B: while文〜
- Java はじめて13 〜ループ処理C: do-while文〜
- Java はじめて14 〜クラスの作り方〜
- Java はじめて15 〜クラス型変数の使い方〜
- Java はじめて16 〜クラス設計から実装〜
- Java はじめて17 〜設計後の部品を実装する1〜
- Java はじめて18 〜設計後の部品を実装する2〜
- Java はじめて19 〜コンストラクタの役割を見る〜
- Java はじめて20 〜チェック処理クラスを作る〜
- Java はじめて21 〜オブジェクト指向的分析、アプリの拡張をする〜
- Java はじめて22 〜オブジェクト指向的分析、アプリ拡張の実装とテスト〜
- Java はじめて23 〜テスト駆動型開発を行う〜
- Java はじめて24 〜JUnitでのテスト駆動型開発1〜
- Java はじめて25 〜JUnitでのテスト駆動型開発2: テストケース作成〜
- Java はじめて26 〜JUnitでのテスト駆動型開発3: クラスの実装〜
- Java はじめて27 〜JUnitでのテスト駆動型開発4: 追加修正と実装〜
- Java はじめて28 〜JUnitでのテスト駆動型開発5: ファイル出力の実装〜
- Java はじめて29 〜JUnitでのテスト駆動型開発6: ファイル読み込みのテスト〜
- Java はじめて30 〜JUnitでのテスト駆動型開発7: テストクラスの実装方法〜
- Java はじめて31 〜JUnitでのテスト駆動型開発8: 処理をつなげたテスト〜