『プログラミングの基礎③』基本構文とアルゴリズムの組み立て方

プログラミングの基礎③_基本構文とアルゴリズムの組み立て方 プログラミングに必要な知識

【本サイトではGoogleアドセンス、または、アフィリエイト広告を利用しています。】

2つの基本構文を覚えればプログラムは書けます

今からプログラミングを始める人は、めちゃくちゃ複雑な暗号を書きまくるような
しんどいイメージをプログラムに持ってないでしょうか?

 少し不安になっている人

でも、実は、そんなに気負わなくても大丈夫です!

プログラムには基本的な構文があります。

これからお話する、条件分岐繰り返しの2種類だけ覚えれば、ほとんどの処理は書けます

でも、それだけだとダラダラと長いプログラムになるので、

あとは、あなたがこれから学ぶ言語に用意されている
部品や特性をいかに上手に使うかがカギになってくるのですが、
それはもっとスキルが上がってからのお話です。

複雑難解なプログラムでも、蓋を開けて突き詰めると、
構文としては、条件分岐と繰り返し、この2種類なのです。

ということで、プログラマーとして自立するために、
まずは基本を覚えていきましょう!

プログラムを今から始める人は、前回までの記事とあわせて読んでいただくと
より理解が深まると思います!

ifを使った条件分岐

まずは、if文と呼ばれる条件分岐についてです。

条件分岐とは、その名の通り、
条件によって分岐を作って、異なった処理を実行させることです。

例えば、ごはんを食べる時でも、いろんなイベントが起こります。

お腹がいっぱいになったり、喉が渇いたり、
食べ物が気管に入って咳き込むことだってあります。

その時々によって、その後取る行動も変わってきますよね?

 食事をする人

この動作を、if文を使って書くと下のような感じになります。
細かなプログラムの書き方は、言語ごとに違うので、ここでは説明しませんが、
まずはifの使い方としてイメージしてください。

if (喉が渇く) {
    飲み物を飲む
}
else if (咳き込む) {
    飲み物を飲む
}
else if (お腹いっぱい) {
    ごちそうさま
}
else {
    食べる
}

下がif文の基本構文です。この書き方は言語共通です。

ifに続けて条件を「()」小括弧で囲みます
実行する処理は「{}」中括弧で囲みます

2つ目以降の条件は、先頭にelseをつけます。

最後はelseのみ指定することで、
「その他の場合」という条件として扱う
ことができます。

最後のelseの条件が不要な場合は、else ifまでで終わってもOKです。

// 1つ目の条件はifで始める
if (条件1) {
    処理1
}
// 2つ目以降の条件からはelseを付ける
else if (条件2) {
    処理2
}
else if (条件3) {
    処理3
}
// どの条件にも当てはまらない時
else {
    処理4
}

また、elseを使わず、以下のように、ifを何個も書くとどうなるでしょう?

一見同じように見えますが、少し動きが変わってきます。

上の例では、条件2を満たした時、処理2を実行して
このプログラムの処理は終わります。

下の例では、条件2を満たした時、処理2を実行して、
次に条件3の判定が行われます。条件3の次は条件4の判定が行われます。

つまり、下の例では、すべての処理を通る可能性を持っています

if (条件1) {
    処理1
}
if (条件2) {
    処理2
}
if (条件3) {
    処理3
}
if (条件4) {
    処理4
}

どれか1つの処理しか通ってはいけないところを、2つ通してしまった、
という不具合を起こしやすい事例です。

微妙な違いを理解して注意しながら使い分けましょう!

switch~caseを使った条件分岐

switch~case文は、if~else if文と意味的には全く同じです。
書き方が違うというイメージです。

この場合は処理1、この場合は処理2、という形で
指定した変数に入っている値に従って条件分岐を行います。

ごはんを食べる時の行動をswitch文で書くとこうなります。
ここでは、条件に使う変数を「体調」としましょう。

switch (体調) {
    case 喉が渇く:
        飲み物を飲む
        break;
    case 咳き込む:
        飲み物を飲む
        break;
    case お腹いっぱい:
        ごちそうさま
        break;
    default:
        食べる
        break;
}

下がswitch文の基本構文です。defaultやbreakの指定条件が言語ごとに若干違いますが、
まずはこの形を覚えましょう。

まずは、判定に使う変数をswitchの後ろに書きます。

次に、その変数に入る可能性のある値と、
その値になった時に実行する処理を各caseに並べます

値の後ろには「:」半角のコロンをつけます。

各処理の最後には「break;」文を書きます。
これは、ここで処理を終了するよ、という意味です。

また、if文の最後に使うelseと同様に、
どの条件にも当てはまらない時のパターンとして、defaultを指定します。

switch (変数) {
    case 値1:
        処理1
        break;
    case 値2:
        処理2
        break;
    case 値3:
        処理3
        break;
    default:
        処理4
        break;
}

ごはんを食べる行動を書いたswitch文は、
先ほどのif~else文の例と全く同じ処理となりますので、見比べてみてください。

switch文は、ある変数に対して、入る値の種類が前もって決まっている場合
例えば、処理のステータス(成功、エラー)などに使うと見やすいです。

forを使った繰り返し(ループ処理)

for文とは、同じ処理を何度も実行する為の構文です。
繰り返すので、ループ処理とも呼ばれます。

ごはんを食べる時は、当然、噛んでから飲み込みます。

噛むという処理を10回繰り返して飲み込むと考えると、for文はこうなります。

// 噛む回数
int count = 0;

// 10回噛む
for (count = 0; count < 10; count++) {
    噛む
}

飲み込む

下がfor文の基本構文です。

forに続いて、小括弧()に繰り返し時に使う条件や処理を記載します。

開始処理には、基本的には、
繰り返す回数をカウントする変数に初期値を入れます。

繰り返し条件には、基本的には、
「カウント変数がこの値になるまで」といった条件を指定します。

各ループの最後に実行する処理には、基本的には、
カウント変数に1を足す処理を指定します。

for (開始処理; 繰り返し条件; 各ループの最後に実行する処理) {
    処理
}

この構文を使えば、同じ処理を何度も書く必要がなくなります!

whileを使った繰り返し

while文も繰り返しの構文になりますが、forと違う点としては、
条件が満たされている無限に繰り返すという特徴にあります。

例えば、先ほどのごはんを食べる時の例をwhile文で書いてみると、

// 噛む回数
int count = 0;

// 10回噛むまで繰り返す
while (count < 10) {
    噛む

    // 噛んだ回数を1回増やす
    count++;
}

飲み込む

このような形になります。

変数「count」は0から始まって、ループする度に1ずつ増えていきます。

繰り返し条件は「count < 10」なので、10より変数「count」が小さい間は
ずっと「噛む」という処理が繰り返されます。

下が、whileの基本構文です。

whileに続いて、小括弧「()」に繰り返し時に使う条件を記載します。

実行する処理は「{}」中括弧で囲みます

while (繰り返し条件) {
    処理
}

利用時の注意点として、繰り返し条件が永遠に満たされない処理を書いても、
プログラムは実行できてしまいます。

無限ループと呼ばれる、
プログラムが終了しないバグを生んでしまうので注意しましょう!

アルゴリズム|プログラムの組み立て方

ここまで条件分岐と繰り返し処理についてお話をしましたが、

最後に、プログラムをどのように組み立てるのか
つまり、アルゴリズムの組み立て方についてお話をします。

 積み木をする子供

  1. 変数と計算式を書きます。
  2. 分岐や繰り返しがある場合は構文を組み込みます。
  3. 関数やクラスを使って、処理を整理します。

たったこれだけで、プログラムは完成します。

しかし、期待する動作までには、この中に無限の組合せがあります。

例えば、同じ足し算の処理を10回繰り返す場合

10行足し算を書く人、for文の中に足し算を書いて使う人、
足し算を関数にしてfor文を使う人、この3つのパターンが出てきます。

答えを出すという点ではすべて正解ですが、

システムのプログラムとして、何が正しいのか、
メンテナンス性を考えた時どうなのか、処理速度はどうなのか、

いろいろな観点から最適な組み合わせを見つける必要があります。

その為に、言語の特性を理解し、開発するシステムの特性を理解し、
人の書いたプログラムを参考にし、とにかく自分で書いてみること
が大切です。

いきなり最適解を出せる人はまずいません。

まずは、基本形で骨組みの処理を作ってみて、少しずつ整理を重ねながら、
効率の良いプログラム、つまり、最適なアルゴリズムに仕上げ
ていきましょう!

まとめ

基本構文を覚えるとプログラムが書けるようになります。

単純に構文を組合せるだけですが、実はそこがあなたの腕の見せ所です。

必要となる動作をアルゴリズムとしてうまくとらえて、
プログラムに上手に落とし込む力、

プログラマーの力はそこで試されます!

 タイピングが速い人

その為にも、まずは今回お話した基本の形をマスターしましょう!

次回は、オブジェクト指向についてお話をします!

タイトルとURLをコピーしました