<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: #include6: #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でした。
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
項目別に本音?それとも建て前?的な記事をまとめました。
気になったジャンル↓を選択してください。 |
Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]