W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
這些運(yùn)算符可用于確定變量或值之間的邏輯。
操作符 | 含義 |
---|---|
&& | 與 |
|| | 或 |
! | 非 |
邏輯與運(yùn)算符&&,是組合兩個(gè)邏輯表達(dá)式的二進(jìn)制運(yùn)算符,即兩個(gè)計(jì)算為true或false的表達(dá)式。
考慮這個(gè)表達(dá)式:
test1 && test2
如果表達(dá)式test1和test2的值都為true,則此表達(dá)式計(jì)算結(jié)果為true。
如果操作數(shù)中的任一個(gè)或兩個(gè)都為false,則操作結(jié)果為false。
使用&&運(yùn)算符的明顯地方在if表達(dá)式中。這里有一個(gè)例子:
if(age > 12 && age < 20) { printf("You are a teenager."); }
僅當(dāng)age的值為13到19(含)時(shí),才執(zhí)行printf()語(yǔ)句。
當(dāng)然,&& 運(yùn)算符可以是bool變量。
您可以用以下語(yǔ)句替換上一條語(yǔ)句:
bool test1 = age > 12; bool test2 = age < 20; if(test1 && test2) { printf("You are a teenager."); }
和運(yùn)算符的真值表
X | y | 結(jié)果 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
使用邏輯與運(yùn)算符
#include <stdio.h>
#define PERIOD "."
int main(void)
{
char ch;
int charcount = 0;
while ((ch = getchar()) != PERIOD)
{
if (ch != """ && ch != "\"")
charcount++;
}
printf("There are %d non-quote characters.\n", charcount);
return 0;
}
上面的代碼生成以下結(jié)果。
邏輯或運(yùn)算符||,檢查兩個(gè)或多個(gè)條件中的任何一個(gè)為真。
如果||的任一個(gè)或兩個(gè)操作數(shù)運(yùn)算符是真的,結(jié)果是真實(shí)的。
有當(dāng)兩個(gè)操作數(shù)都為false時(shí),結(jié)果為false。
以下是使用此運(yùn)算符的示例:
if(a < 10 || b > c || c > 50) { printf("At least one of the conditions is true."); }
只有在三個(gè)條件a <10,b> c或c> 50中的至少一個(gè)為真時(shí),才執(zhí)行printf()。
您可以使用&&和||邏輯運(yùn)算符組合,如下面的代碼片段:
if((age > 12 && age < 20) || savings > 5000) { printf ("hi."); }
您可以用以下語(yǔ)句替換上一條語(yǔ)句:
bool over_12 = age > 12; bool undere_20 = age < 20; bool age_check = over_12 && under_20; bool savings_check = savings > 50; if(age_check || savings_check) { printf ("Hi."); }
或運(yùn)算符的真值表
X | y | 結(jié)果 |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
邏輯非運(yùn)算符,由!表示。
!運(yùn)算符是一元運(yùn)算符,因?yàn)樗贿m用于一個(gè)操作數(shù)。
邏輯非運(yùn)算符反轉(zhuǎn)邏輯表達(dá)式的值:true變?yōu)閒alse,false變?yōu)閠rue。
if( !(age <= 12) ) { printf("Hi."); }
非運(yùn)算符的真值表
X | 結(jié)果 |
---|---|
true | false |
false | true |
為了說(shuō)明如何在C代碼中使用邏輯運(yùn)算符,可以編寫(xiě)這段代碼。
#include <stdio.h>
int main() {
int a,b;
a = 5;
b = 8;
printf("%d \n",a>b && a!=b);
printf("%d \n",!(a>=b));
printf("%d \n",a==b || a>b);
return 0;
}
上面的代碼生成以下結(jié)果。
以下代碼顯示如何測(cè)試字母大小寫(xiě)。
#include <stdio.h>
int main(void)
{
char letter = 0; // Stores an input character
printf("Enter an upper case letter:"); // Prompt for input
scanf(" %c", &letter); // Read the input character
if((letter >= "A") && (letter <= "Z")) // Verify uppercase letter
{
letter += "a"-"A"; // Convert to lowercase
printf("You entered an uppercase %c.\n", letter);
}
else
printf("You did not enter an uppercase letter.\n");
return 0;
}
上面的代碼生成以下結(jié)果。
下面的代碼使用ctype.h中的函數(shù):
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char letter = 0; // Stores a character
printf("Enter an uppercase letter:"); // Prompt for input
scanf("%c", &letter); // Read a character
if(isalpha(letter) && isupper(letter))
printf("You entered an uppercase %c.\n", tolower(letter));
else
printf("You did not enter an uppercase letter.\n");
return 0;
}
上面的代碼生成以下結(jié)果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: