C言語 while 繰り返し スクリプトの書き方

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

while文は、条件を満たす間ずっとコードブロックを繰り返す場合に使います。例えば、「ファイルの末尾までチェックする」とか、「ある条件を満たすまで」というような回数不定の条件などで用いると便利です。

スポンサーリンク



while文による繰り返し制御

case文の書き方

while文を繰り返すための条件式を書きます。条件が条件を満たす間ずっと繰り返しを行います。条件を満たしたか?の判断に、「繰り返し処理を脱出するbreak」や「途中で折り返すcontinue」などの制御文と一緒に用いられることが多いです。

while文の一般的な形式

while (条件式) {
    対応した文;
    ...
}

プログラム

test_while.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

void main(int argc, char* argv[])
{
  srand(time(NULL));
  int sec = rand()%26;

  if (argc>1 && argv[1][0] == 'D') {
    printf("%c %2d\n", sec+'A', sec);
  }

  printf("PLEASE INPUT KEY(A-Z). Quit:Control+C\n");

  int count = 0;
  char line[80];
  char key;
  while (count<10) {
    fgets(line, sizeof(line), stdin);
    sscanf(line, "%c", &key);
    count++;
    if (sec == (key-'A')) {
      break;
    }
    else {
      (sec<(key-'A'))? printf("A..%c", key) : printf("%c..Z", key);
      printf("\n");
    }
  }
  printf("%s\n", count<10 ? "you win" : "C win");
}

プログラム実行

test_while
$ gcc test_while.c -o test_while
$ ./test_while
PLEASE INPUT KEY(A-Z). Quit:Control+C
A
A..Z
H
H..Z
O
O..Z
Q
Q..Z
V
A..V
T
T..Z
you win

プログラムについて

test_while.cでは、入力されたキーをチェックするために「while」を使いました。fgetsとsscanfを使って、キーボードから入力された1文字を判断します。10回以内の入力でランダムに選ばれた文字と一致したら、「あなたの勝ち」です。10回以内に当てれなかったら、「C」の勝ちです。whileの条件は入力回数のcount<10で、1回入力する度にcount+1されます。key==sec(key-'A')でキーが一致したらbreakでwhileの繰り返しを抜けます。 秘密のキーは、「rand()%26」で実行毎に1つ選びます。ヒントを表示していますが、最も近かった情報を記録して表示すると、もっと楽しめると思います。

スポンサーリンク





カテゴリー

今週よく読まれている記事

  1. 学会・会議で英語が絶望的にできなくて困るケース | オンライン開催で「英語力のなさ」を痛感した場合の対処法

    学会・会議で英語ができなくてに困るケース学会やイベント・会議などが、オンラインで開催される…
  2. r tidyverse 使い方 | 列 filter 絞り込み select関数 – dplyrパッケージ

    tidyverseで1つのデータフレームの列の絞り込みは、dplyrパッケージのselect関数を…
  3. プログラミングで疲れた脳をリフレッシュ 〜 鬼滅の刃「感動」と「やる気アップ」でストレス発散!

    ストレス発散は鬼滅で。「50%OFF」で読む!脳のパフォーマンスを上げるには、適度な休憩と…
  4. AWS ディスク容量不足 新しいボリュームを追加する

    バイオインフォマティクスでは大きなファイルを扱うことがあるので、ディスク不足に陥ることがあります。…
  5. 「知っている」と「知らない」とでは、もしものとき、大違いになる – コロナうつ対策

    コロナうつなどという言葉を聞くようになりましたが、派遣切り、解雇、リストラは、これから本格化します…

人気記事

  1. Excel, 統計

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

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  3. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…

おすすめ記事

  1. awk, シェルスクリプト

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

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

    シェルスクリプト | ファイル存在チェック・空ファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…