条件判断

条件判断は

    if (何々) {
        「何々」が成り立ったときに実行する命令
    } else {
        「何々」が成り立たなかったときに実行する命令
    }
のようにします。下の例では「何々」にあたるものは t % 2 == 0 つまり「t を 2 で割った余りが 0 に等しい」です。
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
    cout << "Content-type: text/html\n\n";
    time_t t = time(0);
    if (t % 2 == 0) {
        cout << "ちょー\n";
    } else {
        cout << "はん\n";
    }
}

これで,1970年元旦からの秒数が偶数なら「ちょー」, 奇数なら「はん」と画面に出ます。

ifelse の中かっこの中に命令が一つしかなければ, 中かっこは省略できます。 上のプログラムの条件判断の部分は

    if (t % 2 == 0)
        cout << "ちょー\n";
    else
        cout << "はん\n";
または
    if (t % 2 == 0) cout << "ちょー\n";
    else            cout << "はん\n";
のように書いてもいいわけです。

場合分けを3通りにしてみましょう。

#include <iostream>
#include <ctime>
using namespace std;

int main()
{
    cout << "Content-type: text/html\n\n";
    time_t t = time(0);
    if (t % 3 == 0) {
        cout << "ぐう\n";
    } else if (t % 3 == 1) {
        cout << "ちょき\n";
    } else {
        cout << "ぱー\n";
    }
}

絵にしてみましょう。 あらかじめ「ぐー」「ちょき」「ぱー」の絵を描いておきます。

    if (t % 3 == 0) {
        cout << "<img src=\"guu.gif\">";
    } else if (t % 3 == 1) {
        cout << "<img src=\"choki.gif\">";
    } else {
        cout << "<img src=\"paa.gif\">";
    }

このように,cout" の中にさらに " を入れるには,内側の "\" と書きます。

別の例を挙げましょう。

#include <iostream>
#include <ctime>
using namespace std;

int main()
{
    cout << "Content-type: text/html\n\n";
    time_t t = time(0);
    tm *x = localtime(&t);
    if (x->tm_hour > 5 && x->tm_hour < 10) {
        cout << "おはようございます";
    } else if (x->tm_hour < 15) {
        cout << "こんにちは";
    } else {
        cout << "こんばんは";
    }
}

&& は「かつ」という意味, || は「または」という意味です。

課題
CGI を使って,時刻によって絵やメッセージが変わるページを作ってください。

リンクはご自由にどうぞ。

松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp

Last modified: Thu Dec 16 22:49:52 1999