アットウィキロゴ

if文を使って条件分岐

if文?

 今回からいよいよプログラムぽいことをしていきたいと思います。
今回紹介するのはif文です。このif文はよく使うのでしっかり覚えておきましょう。
まずは解説前にプログラムを打ってみましょう。
main.cpp
/*
 if文を使ってみる
*/
#include <stdio.h>
 
 /* メイン関数 */
 int main( void )
 {
       int vx;
 
       printf( "整数を入力してください:");
       sacnf( "%d," &vx );
 
       /* if文 */    
       if( vx % 2 )
          puts( "その数は2で割りきれません" );  // 割り切れなかったら表示
 
      return(0);
 }
 

 実行すると下のように2で割り切れない数値を入力するとメッセージを出力します。
これがifによる条件分岐です。今回は2で割り切れるかという条件を設定しています。



 if文を使うと今まで上から順番に処理していたプログラムに処理の分岐が行えるようにできるのです。
記述方法はif( 式 ) 文;のように記述します。式の評価が0でなければ文の部分の処理を実行します。
式が演算なら演算結果が非0かどうかで判定されます。

if文
if( vx % 5 ) 
  puts( "5で割りきれません。" ); // 割り切れた場合はこの処理はされない
 

 if文には応用としてif else文があります。
記述方法はif( 式 ) 文1; else 文2;のように記述します。 ifの動きは先程と同じです。
違うのは、式の評価が非0の時は文1を実行し、0のときは文2が実行されます。
elseは必ずif文とセットで使います。

if else文
if( vx % 5 )
  puts( "5で割りきれません。" ); // 割りきれない場合は非0なので実行
else
  puts( "5で割り切れます。" );  // 割り切れる場合は0なので実行
 

 if文は2種類あることを解説しました。そして、もう1つif文にできることがあります。
それは、入れ子にして複数の処理が記述できることです。今までのif文は直後の1文のみが対象でしたね。
ですが直後に{}を記述すると{}内の処理を対象にすることができます。else文にも使用できます。

入れ子構造のif文
if( vx % 5 )
{ // 非0なら{}内の処理をする
  puts( "5で割りきれません。" );
 vy = vx % 5;
}
else
{ // 0なら{}内の処理をする
  puts( "5で割り切れる。" );
 vy = 0;
}
 

このような{}で囲んだものを複合文(ブロック)といいます。



最終更新:2012年05月22日 22:47
添付ファイル