C語言邏輯運算符介紹和示例

1、邏輯運算符介紹

在日常生活中,要做出某個決定,需要判斷的條件往往不止一個,需要判斷多個條件,例如超女選秀,參與選秀的女孩子有以下基本數據:

年齡:取值16-50歲。

身高:取值150cm-190cm。

身材:1-火辣;2-普通;3-飛機場。

顏值:1-漂亮;2-一般;3-歪瓜裂棗。

女神標準是:1)年齡25-30歲;2)身高165cm-175cm;3)身材火辣;4)顏值漂亮或一般(可以整容)。

大腦中的邏輯是這樣的:年齡25-30歲 並且 身高165cm-175cm 並且 身材火辣並且(顏值漂亮 或者 顏值一般)。

用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");
}

運行效果
在這裏插入圖片描述

2、邏輯表達式的書寫

在book25.c中,採用了if嵌套的方法,其實可以採用一個複雜的if邏輯表達式一次性完成全部的判斷,採用括號、對齊、空格、換行有助於更清晰的表達複雜的邏輯表達式。

示例(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");
  }
}

book26.c採用一個if表達式就實現了全部邏輯的判斷功能,效果與book25.c相同,如果實在理解不了,就採用book25.c中的表達方式。

3、不得不說的邏輯非

邏輯運算符有三種,上文介紹了&&和||,還有一個!沒介紹,在我看來,這個運算符就不應該存在,它很容易搞亂人的思維。

大家可以先看看它是怎麼回事,也可以寫代碼測試一下它的用法,然後就忘了它。

!就是非,取相反的意思。

例如:

  if (age==25) // 判斷年齡是25歲

等同

  if (!(age!=25)) // 判斷年齡不是25歲再取反

這是吃飽了撐着。

4、版權聲明

C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。

來源:C語言技術網(www.freecplus.net

作者:碼農有道

如果這篇文章對您有幫助,請點贊支持,或在您的博客中轉發此文,讓更多的人可以看到它,謝謝!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章