C言語の場合は分岐構造

関係演算子

関係演算子(リレーショナル理解するために、条件分岐構造ならば話す前に、
プログラムの流れを決定する条件を決定するために、演算子)。

関係 数学的表現 C言語の表現
以下 < <
以下で <=
より大きい > >
以上で > =
等しいです = ==
等しくありません !=

Cでの基本データ型は、char、int型、ダブル、我々は信じているだけのcharと関係演算子にint型適用可能であり、将来の二重の文字列(文字配列)関係演算子を議論します。

注意:

1)「=」が割り当てられ、「==」は二つの数が等しいかどうかを判断し、それが混在させることはできません。

:2)C言語は、「範囲内」、または関係演算子「内」、「中」「間」ではないが、例えば、25〜30歳の間、のように表すことができる25歳以上の年齢そしてより若い年齢の30年に等しいです

第二に、条件の決意

私たちの生活の中で、物事はすべてのシーケンスではありませんが、あなたは16歳未満、参加する16歳に制限され、そのようなスーパーガール案として客観的条件に基づく判断や選択を、確認する必要があり参加することはできません。この時間は、プログラムは、16歳以上の申請者か否かの判断をする必要がある、とヒントを与えます。

C言語では、ifとelse条件は、キーワード、次のコードを見て決定されます。

実施例(book20.c)

/*
  *  程序名:book20.c,此程序演示条件分支控制语句if else的使用。
  *  作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>

int main()
{
  int    age=0;   // 定义一个整数变量age,存放用户输入的年龄

  printf("请输入您的年龄:");    // 提示用户输入
  scanf("%d",&age);              // 接受从键盘输入的年龄数据

  if (age >= 16)
  {
    // 如果用户已满18岁,执行这段代码
    printf("亲,您已成年,可以报名超女选秀,祝您好运!\n");
  }
  else
  {
    // 如果用户小于16岁,执行这段代码
    printf("这位童鞋,不好意思哦,等您16岁之后再来吧!\n");
  }
}

業績

ここに画像を挿入説明

このコードでは、年齢> = 18の条件を決定する必要があり、> =手段「以上」≥数学に、同等。

あれば、それ以外はC言語のキーワードで、その場合は、他のそれは、「そうでない」「場合」、条件を決定し、その結果に基づいて、異なる文を実行するために使用されます。他の構造である場合は、要約すると:

  if (判断条件)
  {
    语句块1
  }
  else
  {
    语句块2
  }

判定条件が満たされた場合、その後のステートメント1、2のブロックを実行したり、文のブロックを実行する、ことを意味します。その実行には、次の図のように表すことができます。

ここに画像を挿入説明
文(ステートメントブロック)のいわゆるブロックは、{}囲まれた1つ以上の文の集合です。もし一つだけのステートメントステートメントブロック、{}例えば、省略されてもよいです。

 if (age >= 16)
    printf("亲,您已成年,可以报名超女选秀,祝您好运!\n");
  else
    printf("这位童鞋,不好意思哦,等您16岁之后再来吧!\n");

若しくは

  if (age >= 16)  printf("亲,您已成年,可以报名超女选秀,祝您好运!\n");
  else  printf("这位童鞋,不好意思哦,等您16岁之后再来吧!\n");

elseステートメントは、状況に応じて異なるコードを実行することができれば、それはまた、分岐構造又は選択された構造、上記のコードと呼ばれているため、二つの分岐があります。

もし(判定条件)の後にセミコロンを追加しないように注意してください、以下は初心者がこの間違いを犯し簡単にするために、間違っています。

  if (age >= 16);

そう書かれている場合、それは空の文を実行し、条件が真で表しています。

第三に、唯一のif文

条件が満たされたときに、我々は何も操作せずに一部の操作では、一定の条件を満たすために必要が行われていない場合に時々、この時点で我々は唯一のif文を使用することができます。言い換えれば、それ以外の場合は、同時に発生することはありません。

if文の別々の形式を使用します。

if (判断条件)
  {
    语句块
  }

判定条件は、文のブロックの実装に満足している場合、ことを意味し、そうでない場合はスキップします。その実行には、次の図のように表すことができます。

ここに画像を挿入説明

スーパーガールドラフトなどは、旅費のスーパーガールの支払いを排除する活動の主催者、スーパーガールに排除された、標準は2000元/人である、しかし、プログラムのスポンサーは、カラー値に500元を美しいスーパーガールの複数を与えることにした、豊か秒を持っています。

実施例(book21.c)

/*
  *  程序名:book21.c,此程序演示条件分支控制语句只有if没有else的情况。
  *  作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>

int main()
{
  int    yz=0;   // 定义一个整数变量存放超女的颜值:1-漂亮;2-一般
  int    money=2000;  // 发放路费的基本金额

  printf("请问超女的颜值(1-漂亮;2-一般):");
  scanf("%d",&yz);              // 接受用户从键盘输入的数据

  if (yz == 1)
  {
    // 如果超女颜值漂亮,多给500元的路费
    money=money+500;
  }

  printf("此超女发放金额为%d元。\n",money);
}

業績

ここに画像を挿入説明

第四に、より多くの場合はelseステートメント

else文は、同時に複数の使用可能な場合は複数の枝、以下のフォームを形成します:

 if (条件表达式一)
  {
    语句块一
  }
  else if (条件表达式二)
  {
    语句块二
  }
  else if (条件表达式三)
  {
    语句块三
  }
  else if (条件表达式n)
  {
    语句块n
  }
  else
  {
    全部的条件都不符时执行此语句块x
  }

そうでなければ他のコードを続行すると決意条件は、その後、文全体を越えて文の対応するブロックを実行し、上部から決意条件が成立している底部に順次検出されることを意味します。すべての条件に該当すると判断されていない場合は、その文が実行されたブロックは、X。

裁判官が遭遇する条件を設定することができたら、言い換えれば、それはブロックが実行されるので、最後に一つだけのステートメントがあることができ、他の文のブロックを実行しなくなりました。

例えば、else文場合は週入力デジタル表現の複数を決定します。

実施例(book22.c)

/*
  *  程序名:book22.c,此程序演示条件分支控制语句有多个 if else的情况。
  *  作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>

int main()
{
  int    day=0;   // 定义一个整数变量用于接受键盘输入的数字

  printf("请输入0-6之间的数字:");    // 提示用户输入
  scanf("%d",&day);              // 接受用户从键盘输入的数据
  if (day == 0)
    printf("星期天\n");
  else if (day == 1)
    printf("星期一\n");
  else if (day == 2)
    printf("星期二\n");
  else if (day == 3)
    printf("星期三\n");
  else if (day == 4)
    printf("星期四\n");
  else if (day == 5)
    printf("星期五\n");
  else if (day == 6)
    printf("星期六\n");
  else
    printf("输入错误。\n");
}

業績

ここに画像を挿入説明

それは人々を混乱するのは簡単ですので、私たちはより多くの場合、他のスイッチよりも、適切学ぶため、このような後の章のように、他のより良い方法は、ある需要のこの種を解決するために、このプログラム構造場合、プログラムの構造を他の注意をお勧めします。

第五に、if文でネスト

文は可能性がある場合、たとえば、ネストされました:

実施例(book23.c)

/*
  *  程序名:book23.c,此程序演示条件分支控制语句有多个if嵌套的情况。
  *  作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>

int main()
{
  int a,b;   // 定义两个整数变量,用于比较大小

  printf("请输入两个数字:");    // 提示用户输入
  scanf("%d %d",&a,&b);              // 接受用户从键盘输入的数据

  if (a == b)      // 两个数相等的情况
  {
    printf("a(%d) 等于 (%d)\n",a,b);
  }
  else             // 两个数不相等的情况
  {
    if (a > b)     // a大于b的情况
    {
      printf("a(%d) 大于 b(%d)\n",a,b);
    }
    else           // 剩下的就是a小于b的情况了
    {
      printf("a(%d) 小于 b(%d)\n",a,b);
    }
  }
}

業績

ここに画像を挿入説明

第六に、良いプログラミングの練習を維持するために、

if文を入れ子にすると、それ以外の場合は、他のペアリング、C言語の規定の問題に注意を払うが、常にそれの最も近い場合は、フロントとペアになっています。あなたは、このような書き込みなど良いプログラミングの練習、スペース、インデント、アライメント、{}のペアを維持する必要があり、貧しいコーディング手法は、独自のハローに従事します。

七、論理演算子

日常生活では、意思決定をするために、あなたは条件がしばしばつ以上であるかを決定する必要がある、あなたは、このようなスーパーガールの才能などの条件の数を決定する必要があり、草案に関与女の子は、次の基本的なデータを持っています:

年齢:16-50歳の値。
身長:150センチメートルの値-190センチメートル。
図:ホット1-;一般2-、3-空港。
美しいの1-; 2-船; 3-曲がったメロンの分割日:ヤンが見つかりました。

女神の基準は、1)25〜30歳の年齢; 2)高さ165センチメートル-175センチメートル; 3)熱い体; 4)美しい顔値。

脳のロジックはこれです:25〜30歳の年齢身長165cm-175センチメートル熱い体額面美しいです

それは、色の値を選択することができますポイントの需要を削減し、美しいし、一般的にそれがある場合、一般的な、全容量は問題ではありません。

:へのロジックの変更だから、年齢25〜30年、高さ1。65センチメートル-175センチメートル熱い体と(カラー値美しい、一般的にカラー値)。

Cプログラムのような何かを表現します:

  if ( (年龄 >= 25) 并且 (年龄 <= 30) )
  {
    if ( (身高 >= 165) 并且 (身高 <= 175) )
    {
      if (身材 == 火辣)
      {
        if ( (颜值 == 漂亮) 或者 (颜值 == 一般) )
        {
          printf("超女选秀合格,送往后宫。\n");
        }
      }
    }
  }

C言語は、「&&」を示している「と」「||」を示している「または」でで、公用語は論理演算子です。

次のようにコードを変更します。

 if ( (年龄 >= 25) && (年龄 <= 30) )
  {
    if ( (身高 >= 165) && (身高 <= 175) )
    {
      if (身材 == 火辣)
      {
        if ( (颜值 == 漂亮) || (颜值 == 一般) )
        {
          printf("超女选秀合格,送往后宫。\n");
        }
      }
    }
  }

実施例(book25.c)

/*
  *  程序名:book25.c,此程序演示条件分支控制语句if与逻辑运算符。
  *  作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>

int main()
{
  int  age=0;        // 年龄
  int  height=0;     // 身高,单位:厘米cm
  int  sc=0;         // 身材,1-火辣;2-普通;3-飞机场。
  int  yz=0;         // 颜值,1-漂亮;2-一般;3-歪瓜裂枣。

  printf("请输入年龄、身高、身材(1-火辣;2-普通;3-飞机场):");
  scanf("%d %d %d",&age,&height,&sc);
  printf("请输入颜值(1-漂亮;2-一般;3-歪瓜裂枣):");
  scanf("%d",&yz);

  if ( (age >= 25) && (age <= 30) )    // 年龄在25-30之间
  {
    if ( (height >= 165) && (height <= 175) )  // 身高在165-175之间
    {
      if (sc == 1)    // 身材,1-火辣
      {
        if ( (yz == 1) || (yz == 2) )   // 颜值,1-漂亮或者2-一般
        {
          printf("超女选秀合格,送往后宫。\n"); return 0;
        }
      }
    }
  }
  printf("超女选秀不合格,发放五两银子后送回家。\n");
}

業績
ここに画像を挿入説明

8つの論理式を書きます

実際には、一度に全ての複雑な論理式が決定された場合に使用されてもよい、場合book25.cでは、ブラケットを使用して、ネストされたアプローチを使用すると、スペースが、オンラインヘルプがより明確に複雑な論理式を発現する、整列さスタイル。

実施例(book26.c)

/*
  *  程序名:book26.c,此程序演示条件分支控制语句if与逻辑运算符。
  *  作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>

int main()
{
  int  age=0;        // 年龄
  int  height=0;     // 身高,单位:厘米cm
  int  sc=0;         // 身材,1-火辣;2-普通;3-飞机场。
  int  yz=0;         // 颜值,1-漂亮;2-一般;3-歪瓜裂枣。

  printf("请输入年龄、身高、身材(1-火辣;2-普通;3-飞机场):");
  scanf("%d %d %d",&age,&height,&sc);
  printf("请输入颜值(1-漂亮;2-一般;3-歪瓜裂枣):");
  scanf("%d",&yz);}

  if ( ( (age >= 25) && (age <= 30)         ) &&     // 年龄在25-30之间
       ( (height >= 165) && (height <= 175) ) &&     // 身高在165-175之间
       ( (sc == 1)                          ) &&     // 身材,1-火辣
       ( (yz == 1) || (yz == 2)             ) )      // 颜值,1-漂亮或者2-一般
  {
    printf("超女选秀合格,送往后宫。\n");
  }
  else
  {
    printf("超女选秀不合格,发放五两银子后送回家。\n");
  }
}

それが理解できない場合はお時間がかかる、心配、それにおける発現book25.cの使用に、いないすべての判断の実現に論理式を使用して、そして効果book25.c同じであればbook26.c。

ナインは、非論理を言わなければなりません

3つの論理演算子は、上記のセクションでは、我々はの話&&と||、私の意見では、言わなかった!そこにある、ありますが、この演算子は存在してはならない、それが混乱の人々の考え方に簡単です。

我々はそれを忘れて、あなたがその使用をテストするためにコードを書くことができ、それがどのように見てみることができます。

!反対の意味を取る、間違っています。

例えば:

if  (age==25)         // 判断年龄是25岁

等しいです

if  (!(age!=25))        // 判断年龄不是25岁再取反

これが支え供給されます。

X.の三項演算子

三項演算子は、コンテンツ事業者の章されているだろう、私はより適切であることは、このセクションで説明していると信じています。

三項演算子は、オペレータと疑問符記号は、コロンが続いている、三項演算子と呼ばれます。

構文:

 表达式1 ? 表达式2 : 表达式3;

意味:

1式の結果が偽、式が実行された場合ならば、式1の結果が式2、及び発現の全体的な結果の真の、実装は、式2の結果である場合ならば1つの発現は、最初に実行されます3、結果は、式3の発現の結果です。

int a,b,c;
a=7;
b=6;
c=(a>b)?a:b;

等価に

if (a>b) c=a;
else c=b;

私は、三項演算子、理解することは困難、過度に複雑な3つの操作を使用することはお勧めしません。

このような決意は、それが代わりに0を返すので、1を返し、うるう年ではありません。

year=(year%100==0)?(year%400==0?1:0):(year%4==0?1:0)

ヘイローバー。

XIの宿題

1)以下のエラーコードを指摘しました。

int a,b;
a=30;
b=20;
if (a > b);
{
  printf("a 大于 b\n");
}
if (a=b)
{
  printf("a 等于 b\n");
}

2)値書き込ま式テストプログラム

  int a,b,c;

  a=30;
  b=20;

  c=(a > b);
  printf("c=%d\n",c);

  c=(a < b);
  printf("c=%d\n",c);
  printf("c=%d\n",(a < b));

  c=(a=50);
  printf("c=%d\n",c);

3)次の式は、これはどういう意味ですか?

これはどういう意味(0)であれば?

これはどういう意味(1)の場合?

(20)場合、それは何を意味するのでしょうか?

4)次の式は、これはどういう意味ですか?

  35;    // 是什么意思?

5)最後に超女性タレントは、インターフェーススーパーガールで入力されたデータの後に、次の要件の側室、女性や疲労に応じて選出されました。

側室:(1)年齢18~25歳;(2)高さ165〜178センチメートル;(3)ホット体;(4)美しい色の値。

女性:(1)年齢18~30歳;(2)高さ160〜165センチメートル;(3)、又は一般ホット体;(4)一般的な色の値。

母:(1)年齢35~40歳;(2)高さ155〜165センチメートル;(3)一般的な本体又は空港、一般に(4)のカラー値。

XII著作権表示

C言語Technology Networkのオリジナルの記事、論文、著者と元にソースリンクを明記してくださいを再現。
出典:C言語テクノロジーネットワーク(www.freecplus.net)
著者:倫理コード農業

記事の誤字、またはコンテンツのエラー、またはその他の提案やコメントは、正しい私にメッセージをお願いした場合、どうもありがとうございました!

おすすめ

転載: www.cnblogs.com/wucongzhou/p/12498996.html