C言語入門:if、else、else if (2)
C言語でプログラムを書くうえで「もしもこうなったら、こうする」「この場合はこうする」「それ以外の場合はこうする」など、条件によりプログラムを分岐させる事は非常に重要です。 処理を分岐させるif文・else文・else if文の基本的な使い方は前述しましたが、ここではもう少し高度な使い方の説明したいと思います。 ここでは、サンプルコードの結果は書いていません。 実際に手元にサンプルコードをコピー ⇒ コンパイル ⇒ 実行してみてください。
if
前述したif文の「()←括弧」の中身は「==」などの条件文でしたが、ここに直接1や0などの数値を入れる事ができます。 この場合、()の中の数値が0であれば偽として扱われ、0以外であれが真として扱われます。 言い換えると、()の中身が0以外であればif文に入り、0であればif文に入らなくなります。
例えば、以下のサンプルでは一つ目のif文内部は処理され、二つ目のif文内部は処理されません。
#include <stdio.h>
int
main()
{
if (1) {
printf("first [if]\n");
}
if (0) {
printf("second [if]\n");
}
}
if文の条件文が数値の1である場合に真として扱われるのはわかりやすいですが、1以外でも大丈夫です。 以下の例では、数値部分に10や-100などの数値を入れています。 両方ともif文内部が実行されていることを確認してみてください。
#include <stdio.h>
int
main()
{
if (10) {
printf("first [if]\n");
}
if (-100) {
printf("second [if]\n");
}
}
if文を使ってこんな事をして何の意味があるのだろうと思うかも知れませんが、これを変数で利用すると結構使えます。 例えば、ある変数を0で初期化しておくとします。 その変数に0以外の何らかの値が入ったら実行するということをしたい場合、ifの条件文の中にその変数を入れておけばできます。 以下の例では、最初のif文の後に変数「a」に値を代入しています。変数に値を代入した後のif文内部が実行されていることを確認してください。
#include <stdio.h>
int
main()
{
int a = 0;
if (a) {
printf("first [if]\n");
}
a = 1000;
if (a) {
printf("second [if]\n");
}
}
最後に
ここでは、if文の条件部分に「==」などの条件式を入れるのではなく、直接数値を入れる方法を説明しました。 このような使い方は必ずしも必要ではありませんが、覚えておくと使える場合があるので覚えておきましょう。
おまけ