C 邏輯運(yùn)算符

2018-07-05 15:47 更新

學(xué)習(xí)C - C邏輯運(yùn)算符

這些運(yùn)算符可用于確定變量或值之間的邏輯。

操作符含義
&&
||
!

與運(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)算符的真值表

Xy結(jié)果
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

使用邏輯與運(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)算符||

邏輯或運(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)算符的真值表

Xy結(jié)果
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

非運(yùn)算符!

邏輯非運(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é)果
truefalse
falsetrue

例子

為了說(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é)果。

例2

以下代碼顯示如何測(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é)果。

例3

下面的代碼使用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é)果。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)