網絡学習管理 明解C言語入門1 C programming (9) logical operators

C programming (9) logical operators

C の推奨されるスタイル

C言語やJava言語は、中括弧 { } を使ってブロックを記述します。 中括弧だけでなく、ブロックの範囲を字下げ(インデント)して記述します。 ただ、中括弧をどの位置に記述するかによって、コーディング・スタイルの宗教論争が起きています。 主に中括弧の位置の違いなのですが、なぜか字下げスタイルと呼ばれています。

// 中括弧の開始を、文末に記述するスタイルを「K&R スタイル」といいます。
void FuncA()
{
  if ( ... ) {
  }
}

// 中括弧の開始を、文のない行に記述するスタイルを「BSD スタイル」といいます。
void FuncA()
{
  if ( ... )
  {
  }
}


// 関数の開始も、文末に記述するスタイルを「Java スタイル」といいます。
void FuncA() {
  if ( ... ) {
  }
}

 

複合文(ブロック)

文の並びを{ }で囲んだものを「複合文」といいます。ブロックとも言います。

複合文は複数の「宣言」と「」を扱うことができます。

関数の定義に使うブロック { } は「複合文」です。

main関数の定義に使われているブロック { }は「複合文」です。

実例: 二つの整数値を読み込んで、値の関係を表示するプログラムを作成

#include <stdio.h>

int main(void)
{
    int no1, no2, max, min;

    printf("二つの整数を入力してください。\n");
    printf("整数1:");    scanf("%d", &no1);
    printf("整数2:");    scanf("%d", &no2);

    if(no1 > no2){
        max = no1;
        min = no2;
        printf("大きい方の値は%dです。\n", max);
        printf("小さい方の値は%dです。\n", min);
    } else if(no2 > no1){
        max = no2;
        min = no1;
        printf("大きい方の値は%dです。\n", max);
        printf("小さい方の値は%dです。\n", min);
    } else 
        printf("その値は同じです。\n");


    return 0;
}

条件演算子(三項演算子)

/* 今日は、三項演算子(?:演算子)について学びます。条件が真なら処理1を、偽なら処理2を行います。

    条件? 処理1:処理2;

これは、

    if ( 条件 )
        処理1;
    else
        処理2;

と同じです。
しかし、三項演算子を使えばコンパクトなコードを書くことができます。

printf("%s", (x % 2)? "奇数" : "偶数");

 

論理演算子

/* 論理演算子には次の3種類があります。

  1. 式1 && 式2  // and
  2. 式1 || 式2           // or
  3. !式                          // not
#include <stdio.h>

void  main(void);

void main(void)
{
        char c = 'c';

        printf("c = '%c'\n", c);

        if (c >= 'a' && c <= 'z')        /* c が英小文字なら真 */
            printf("c は小文字です。\n");
        else
            printf("c は小文字ではありません。\n");

        if (c >= '0' && c <= '9')        /* c が数字なら真 */
            printf("c は数字です。\n");
        else
            printf("c は数字ではありません。\n");

        if (c == '+' || c == '-')        /* c が '+' か '-' なら真 */
            printf("c は符号です。\n");
        else
            printf("c は符号ではありません。\n");
}

 

演習

演習3-10 (教科書P62)

三つの整数値読み込んで、値の関係を表示するプログラムを作成せよ。

表示例:

  • 三つの値は等しいです。
  • 二つの値は等しいです。
  • 三つの値は異なります。

参考

 

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


Related Post

C programming (5) operator and operandC programming (5) operator and operand

C言語の特徴(2) 関数型言語 コンピュータに実行してもらう命令はすべて関数の中に記述されている。関数がプログラムの実行単位。いくつかの関数を組み合わせ、コンピュータへ命令をする。最初にコンピュータが実行する関数はmain()に決まっている。 戻り値の型 関数名(引数リスト) { 命令文; } 命令文(Statement) 名札付き文 式文 複合文 選択文 繰り返し文 ジャンプ文 式(Expression) オペランド 演算子 オペランド... トークン(token) コンパイラが認識する最小単位のテキスト、トークン(token) […]

C programming (7) Ch1 & Ch2 SummaryC programming (7) Ch1 & Ch2 Summary

履修システム使い方 (塚本先生担当) 連絡事項 花やしきについて、学生にお知らせ頂きたい事項を3点連絡  ①遅刻しないように 9:20までに 161教室に集合する事   出席の確認をします。  ②着物着付け、忍者の時間割をお知らせします。   「誰が何時」という情報  ③雨が降っても花やしきに行きます。   必ず9:20までに161教室に登校する事   第一章、第二章のまとめ 過去のページを参照 演習 演習2-6(P37) 身長を整数値として読み込み、標準体重を実数で表示するプログラムを作成せよ。 標準体重 = (身長 – […]

C programming (a) Switch statementC programming (a) Switch statement

お知らせ 本日ABCDクラス合同避難訓練、第4時限目、本館141教室にて実施。 Switch文構文 条件式を判定して多方向分岐を行う。 switch (式) { case 定数: ブロック文 default: デフォルト・ブロック文 } Berak文構文 switch文で、case句の処理を打ち切りブロックを脱出するときに用いる。 ⇒ 説明済み for文、while文などのループから脱出するときに、if文と併用して用いる。 break;   […]