網絡学習管理 明解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 (2) Create C ProgramsC programming (2) Create C Programs

C言語の特徴(1) 関数型言語 コンピュータに実行してもらう命令はすべて関数の中に記述されている。関数がプログラムの実行単位。いくつかの関数を組み合わせ、コンピュータへ命令をする。最初にコンピュータが実行する関数はmain()に決まっている。 戻り値の型 関数名(引数リスト) { 命令文; } コンパクトな言語仕様 予約語(キーワード)は各種の指示を行う命令。全部で32個。このなかには「画面に文字を表示する」とか「ディスクにデータを書き込む」などという「入出力」の機能はない。すべて「関数」として実現されている。このような基本的な関数がないとコンピュータとやり取りできないので、必ず標準ライブラリ関数として予め用意されている。 #include <stdio.h> Cプログラムの作成 C プログラムの作成手順 文字の並びとして作成したソースプログラムを、コンピュータが理解できる形式に変換する C プログラミングを書くための約束事 基本は半角英数字で書く 大文字と小文字は別の文字 文はセミコロンで区切る […]

C programming (4) puts and scanfC programming (4) puts and scanf

puts関数:表示を行う関数 書式化の必要がなく、改行もしたいの場合 puts(“ABC”); printf(“ABC\n”);   scanf関数:読込みを行う関数 scanf関数は、処理の途中でキーボードから文字の入力を求め、入力されたものを処理に利用するというものです。 実例: #include <stdio.h> int main(int argc, const char * argv[]) { // insert […]

C programming (b) do statementC programming (b) do statement

C言語には、全部で3つのループ文が用意されています。 while文、for文、そして、do(デュウ)~while文です。 do~while文構文 do~while文は、一般に、次のような書き方で使用します。 do { 繰り返す文; } while (条件式); do~while文には、1つ大きな利点があります。それは、繰り返し文が、必ず1回は実行されるという点です。入力チェックの時に威力を発揮します。 継続条件式の後の(;)を忘れないよう注意。 円の面積を計算するプログラム。半径入力値が間違っているならば、再入力させる。 int main(void) { int r; double s; […]