[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> No.013 C言語 制御文IFその1 and 昔の話...

C言語 制御文IFその1 and 昔の話...


本文(発行内容)


<C言語 制御文IFその1 and 昔の話...>
目次 
1.はじめの挨拶 二兎を追うものは、一兎も〜
2.if文の文法?
3.if文(条件分岐) 例)文字の判断
4.if,else文(条件分岐) 例)Y,y の判断
5.おわりの挨拶
----------------------------------------------------------------------------
/*
 * 1.こんにちは
*/
C言語の解説を待っていた方、お待たせしました。
やっと、今回、制御文Ifの一回目?を解説します。
サンプルや解説にキレがなかったら、
遠慮なく、ほどほどに、指摘メール・質問メール下さい。
^^^^^^^^^^^^^^^^^^^^^
AccessやVBAの方が興味がある?
そんなこと言わないで、こちらのほうも、見てください。
*C言語興味がない方は、グチ・激論?だけでも読んでください。

オマエ、二兎を追うものは、一兎も〜。。。って言葉知ってる?
知ってるよ、、、う〜ん、、今後、どうしよう?

まぁ、先のことは、後で考えましょう、、、そろそろ、始めよ。。。

/*
 * 2.if文の文法?
*/
if文のイメージを下記に書きます。
*コレだけじゃないんだけど、、、数回に分けて説明します。

  if文の文法

  if( 条件 ) {
     条件が真の時
  } else {
     条件が偽の時
  }

  if(a==10) {
	printf("aは10です");
  }

  if(a < 100) {
    printf("100未満です");
  }

  if(a == 5 && b == 7) {
    printf("aが5でbも7です");
  }

  if(a == 5 || b == 7) {
    printf("aが5 か bが7 です");
  }

  && −−−> AND
  || −−−> OR
  == −−−> =
  <
  <=
  >
  >=
  !=
って、ざっと書いても?マークだと思うので、
今回から数回、サンプルを説明するので、感じを感覚でつかんでください。

/*
 * 3.if文(条件分岐) 例)文字の判断
*/

一文字入力して、入力された文字を判断し、
結果を画面に表示させます。

filename : D:\NO12\TEST12_1.C
-----
   1: /*
   2:  *  if文(条件分岐)
   3:  *  例)文字の判断
   4: */
   5: #include 
   6: #include 
   7: 
   8: /* メイン処理 */
   9: int main() {
  10: 
  11:     char    moji;           /* 文字変数宣言 */
  12: 
  13:     moji = getch();         /* 1文字入力 */
  14:     printf("入力された文字は[%c]です\n", moji);
  15: 
  16:         /* 数字判断 */
  17:     if('0' <= moji && moji <= '9') {
  18:         printf("この文字は数字です\n");
  19:     }
  20:         /* abc..判断 */
  21:     if('a' <= moji && moji <= 'z') {
  22:         printf("この文字はアルファベットの小文字です\n");
  23:     }
  24:         /* ABC..判断 */
  25:     if('A' <= moji && moji <= 'Z') {
  26:         printf("この文字はアルファベットの小文字です\n");
  27:     }
  28:     return 0; 
  29: }
-----
実行結果 
入力された文字は[5]です
この文字は数字です
-----
簡単な解説
  11:     char    moji;           /* 文字変数宣言 */
キーボードから文字を受け取るため、変数を定義します。

  13:     moji = getch();         /* 1文字入力 */
  14:     printf("入力された文字は[%c]です\n", moji);
標準関数Getchを使用して、一文字受け取ります。
 
  16:         /* 数字判断 */
  17:     if('0' <= moji && moji <= '9') {
  18:         printf("この文字は数字です\n");
  19:     }
ここでは、入力された文字が0以上9以下か、ききます(判断します)
ポイントは、'0'とシングルコーテーションで囲っているところです。
詳しくは、後日説明するので(またかよ)、
なんとなく、イメージでおぼえてください。

  20:         /* abc..判断 */
  21:     if('a' <= moji && moji <= 'z') {
  22:         printf("この文字はアルファベットの小文字です\n");
  23:     }
同様に、入力された文字がa〜zかききます(判断します)

  24:         /* ABC..判断 */
  25:     if('A' <= moji && moji <= 'Z') {
  26:         printf("この文字はアルファベットの大文字です\n");
  27:     }
同様に、入力された文字がA〜Zかききます(判断します)

簡単に書くと、こんな感じです。

枠外解説・グチ1  --  「きく」ってなに?

なにげなく、AがNullかきいて、その結果で判断、、、
なんて、会話してるけど、新人さんにとっては、???みたいですね。
先輩達の会話が違和感なく聞けるようになったら、一人前?。

コンピュータに聞くわけじゃないのに、ねぇ、、、
あっ、もしかして、うちの会社だけの方言?で、
一般的なソフト会社は、普通に
もし、AがNullだったら...とわかりやすい標準語シャベルノカナぁ?

会社によっての方言、、、いろいろありそうで、面白いかも?
テメエはナマリがひどすぎるって、、、ハイハイ。。
標準語話すように、努力しますよ。。。

枠外解説・グチ2  --  不等号の書き方、、、

これも、私の、変なクセの話ですが、
aが20〜の時を普通の人が書くと、
if( a > 20 ) {
なのですが、私の場合、
if( 20 < a )とよくします。
逆の20より下は、みなさんと同じで、
if( a < 20 )です。

>向きの不等号、、なぜか、嫌いなんですよ。
例題で、
if('0' <= moji && moji <= '9') {  // 0よりmojiが大きく9より小さい
と書きましたが、
if(moji >= '0' && moji <= '9') {  // mojiが0より大きく9より小さい
とちらも、大差ないのですが、なんか<の向きをそろえるへんなクセついてます。
教科書の書き方は、変数 比較演算子 定数 ですよねキット。

さすがに、
if( 0 == a ) とは書きませんが、、if( a==0 )ですね。。

みなさんは、どうでしょうか?
面白い話、あったら、聞かせてください。







/*
 *  4.if,else文(条件分岐) 例)Y,y の判断
*/
filename : D:\NO12\TEST12_2.C
-----
   1: /*
   2:  *  if,else文(条件分岐)    
   3:  *  例)Y,y の判断
   4: */
   5: #include 
   6: #include 
   7: 
   8: /* メイン処理 */
   9: int main() {
  10: 
  11:     char    moji;           /* 文字変数宣言 */
  12: 
  13:     moji = getch();         /* 1文字入力 */
  14:     printf("入力された文字は[%c]です\n", moji);
  15: 
  16:     if(moji == 'Y' || moji == 'y') {
  17:         printf("入力されたのはYです\n");
  18:     } else {
  19:         printf("Y以外の文字が入力されました\n");
  20:     }
  21:     return 0;
  22: }
-----
実行結果 
入力された文字は[y]です
入力されたのはYです
-----
簡単な解説
  11:     char    moji;           /* 文字変数宣言 */
キーボードから文字を受け取るため、変数を定義します。

  13:     moji = getch();         /* 1文字入力 */
  14:     printf("入力された文字は[%c]です\n", moji);
標準関数Getchを使用して、一文字受け取ります。

  16:     if(moji == 'Y' || moji == 'y') {
  17:         printf("入力されたのはYです\n");
  18:     } else {
  19:         printf("Y以外の文字が入力されました\n");
  20:     }
入力された文字がY,yか聞きます
(もし、変数mojiの中身が、Yかyだったら)
メッセージprintf("入力されたのはYです\n");を出力します。
それ(Y,y)意外のときは、printf("Y以外の文字が入力されました\n");
と表示します。

文字・文字列について(後日)、詳しく解説したいと思います。
テメエの解説は、政治家みたいに、先送りが多すぎるよ、、
この場で決着つけてほしいなぁ、、、
かんべんしてくださいよ、、、

枠外解説・グチ --- 昔話を一つ、、、NEC98のカナキー、、、、

その昔、C言語で工場関係のシステムを作ってました。
(コンベアを動かして、RS−232Cから重量実績データを受け取る)

で、「よろしいですか?(Y/N)」って、処理が実行前の確認で
ありました。
プログラムを今回の説明みたいに、
if(moji == 'Y' || moji == 'y') {
で組んでました。

オチ、わかった方もいると思いますが、
ある日、どうしても実行できないと問い合わせがあり、
電話対応でも原因がわからなくて、客先に行ってみました。
なんと、
カナキーが押してあり(ロックされていて)
Yじゃなくて、ンが返っていたんですね。。。
*なんとなく、怒る気にもなれなかった、、、、

それ以来、Yes,No確認は、
if(moji == 'Y' || moji == 'y' || moji == 'ン') { // ホントはンは半角
するようになりました。

世の中、何が起こるか、わかりませんね。。。
*これも、テメエの想定ミスだろ、、、

/*
 * 5.おわりの挨拶
*/
今回、簡単なIfの例を2つでした。
説明よりもグチ解説のほうが長かった気もしますが、、、

今日は、このへんで、、、
では、また。  グチの多い(一言多い)三流PGのKen3でした。



ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

リンクや広告など

項目別に本音?それとも建て前?的な記事をまとめました。

気になったジャンル↓を選択してください。
[ルーキー rookies]・・・ 新人さん達 初心者さんへ
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話
[共同作業 team]・・・チーム、グループ作業
[プログラムは心? spirit]・・・プログラマー 心・気質・魂

[掲示板デビューしようぜ bbs]・・・掲示板関係の話、質問者・回答者の気持ちほか
[昔はできた seo]・・・三流式の効果無しSEOとアフィリエイト
[仕事や作業、転職 job]・・・仕事や転職、評価、作業など
[その他 etc]・・・その他 分類外の記事

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]



[三流君(TOP ken3.org へ戻る)] / [プログラマー業務の愚痴] / [バックナンバー 一覧]