C言語 if 分岐条件 スクリプトの書き方

バイオインフォ道場、くまぞうです。

プログラミングのフロー制御で最も単純なのが「if文」です。条件に「一致したかどうか」という判断に基づいて、実行するコマンドを変更したりするときに使います。

スポンサーリンク



if文による条件判断

if文の書き方

if文では複数の条件を判断することができます。上から順に判定されます。「else if」や「else」は必要なときに記述します。条件の中に条件を書く、入れ子構造をとることができます。ちょっとした条件を簡潔に書きたい場合は、「if」の後に「{}(中括弧)」を付けないで書くこともできます。但し、この場合、条件が真の場合に実行できる文は1つです。

if – elsif – else – end

if (条件) {
...
}
else if (条件2) {
...
}
else {
...
}
if (条件)
  文;

if文の真偽

C言語の真偽における「偽」は、「0」です。複数の条件をまとめるには、論理演算子「&&」「||」を使います。否定は「!」です。

プログラム

test_if.c
#include <stdio.h>
#include <stdlib.h>

void main(int argc, char* argv[])
{
  int aaa = atoi(argv[1]);
  if ( !aaa ) exit(0);

  if ( aaa==1 ) printf("aaa==1 aaa=%d\n", aaa);
  if ( aaa>1 ) {
    if (aaa>2 && aaa<3) {
      printf("aaa>2 aaa=%d\n", aaa);
    }
    else if (aaa>3 && aaa<=5) {
      printf("aaa>3 aaa=%d\n", aaa);
    }
    else {
      printf("aaa>5 aaa=%d\n", aaa);
    }
  }
}

プログラム実行

コンパイル
$ gcc test_if.c -o test_if
$ ./test_if 0
(終了)
$ ./test_if 1
aaa==1 aaa=1
$ ./test_if 4
aaa>3 aaa=4

プログラムについて

test_if.cでは、ifの条件を数種類ためしてみました。「変数aaa」が0のとき、ifの条件否定を使ってexitで即座に終了しました。1のときもシンプルなif文を使い、1より大きいときは条件を入れ子構造にして更に条件を細かく分岐させています。入れ子内部で、if – else if – else を使いました。

今回はわざと複数の条件を入れ子にしましたが、プログラムが複雑になりすぎる場合は、他の制御構造を利用したり・例えば1以下の場合には先にプログラムを完結させるような仕組みで、プログラムがシンプルになるように工夫した方が良いと思います。

スポンサーリンク





ピックアップ記事

  1. awk for 繰り返し処理 簡単なサンプルでわかる インクリメント・デクリメント、変わった繰り返し

    awkのfor文は、カウンタを目印にして処理を繰り返したいときによく使われます。for文では、カウ…
  2. R 使い方 グラフの色 自作のカラーパレットとデフォルトのカラーパレット

    グラフを描画する際、色の組み合わせを1つ1つ考えるのは面倒ですよね。Rには、あらかじめ色の組み合わ…
  3. tidyverse – distinct関数でデータフレームの重複行を削除 dplyrパッケージ

    tidyverseでデータフレームの重複行の削除を行う場合、dplyrパッケージのdistinct…

人気記事

  1. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…
  2. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  3. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…

おすすめ記事

  1. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…
  2. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  3. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…