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)
作者:碼農有道
如果這篇文章對您有幫助,請點贊支持,或在您的博客中轉發此文,讓更多的人可以看到它,謝謝!!!