[三流君] −−>
[プログラマー業務の愚痴] −−>
[バックナンバー一覧]
−−> 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でした。
フィードバック
愚痴系の→[掲示板]←を覗く、質問を書き込む
評価・感想
三流君の主なリンク先
[アクセスランキング]
[サイトマップ]
[リンク先・相互リンク先など]
Ken3の日記(weblog) --
[広告・副収入系]
[プログラマー業務の愚痴]
[VBA系の話題]
[ASP系の話題]
[コンビニ系ネタ]
[その他]
その他 宣伝広告