プログラムの基本構文は分かるが、どのようにコードに落とし込んだら良いのか悩んでいる方がいましたら、本記事を参考にしてみてください。プログラムを3つの構造に整理します。そのうちのいずれかになるようにコードを考えます。今回は、分岐について考えます。サンプルコードは、Javaで記述しています。
構造化プログラミング
プログラムを3つの制御構造に整理します。
- 順次(逐次)
- 上から順に処理する
- 上からコードを書くと順次処理になるので、難しく考えなくて良い。
- 分岐(if文、swithc文)
- 条件を満たすかどうかで、その先の処理が枝分かれする。
- 反復(for文、while文)
- 条件が満たされる間、同じ処理を繰り返す。
この3つの構造に当てはまるように、コードを考えます。
分岐
3つの整数から最大値を求めるプログラムを例に分岐の考え方を見ていきます。
比較演算子を使う場合
int x = 50; int y = 10; int z = 40; int max; if (x > y){ if (x > z){ max = x; }else{ max = z; } }else{ if (y > z){ max = y; }else{ max = z; } } System.out.println("最大値は " + max + " です");
変数の数が増えると条件分岐が複雑になってしまいます。
論理演算子を使う場合
int x = 50; int y = 10; int z = 40; int max; if (x >= y && x >= z){ max = x; }else if (y >= x && y >= z){ max = y; }else{ max = z; } System.out.println("最大値は " + max + " です");
変数の数が増えると条件が複雑になってしまいます。
最大値を更新していく場合
int x = 50; int y = 10; int z = 40; int max; max = x; if (y > max){ max = y; } if (z > max){ max = z; } System.out.println("最大値は " + max + " です");
仮に変数xの値が最大値だとして、変数xを変数maxに代入します。変数maxと他の変数を比較して、大きければその値をmaxに代入します。この方法を最後まで繰り返すと最大値が求められます。変数の数が増えても、常に変数maxには、その時点での最大値が入っているので、見通しの良いプログラムになります。
まとめ
構造化プログラミングの分岐について、簡単ではありますが書きました。今回は、最大値を求める方法の考え方について書きました。