《零基礎看得懂的C語言入門教學 》——(六)輕輕鬆鬆瞭解C語言的邏輯運算

2020-10-22 12:00:29

一、學習目標

  1. 瞭解邏輯判斷的概念
  2. 瞭解if語句的使用方法
  3. 瞭解switch語句的使用方法
  4. 瞭解邏輯運運算元的使用方法

目錄

第一篇:(一)脫離學習誤區
第二篇:(二)C語言沒那麼難簡單開發帶你瞭解流程
第三篇:(三)輕輕鬆鬆理解第一個C語言程式
第四篇:(四)語言的基本資料型別及變數
第五篇:(五)C語言的變數、常數及運算

二、瞭解if語句的使用方法

if語句在C語言中用於流程控制,也就是在程式執行時,根據滿足的條件來選擇執行不同的程式碼塊。流程控制就像你計劃明早天氣如果晴朗就去跑步,假設天氣變差,下雨了就不去了。這就是不同的條件進行不同的選擇。

2.1 if語句的使用
if語句在C語言中用於判斷條件是否成立從而執行一部分程式碼,我們使用一個簡單的例子介紹if語句的使用方法:

#include<stdio.h>
void main(){
	int a=1;
	if(a==1){
		printf("變數a的值等於1");
	} 
}

以上程式碼建立了一個變數a賦值為1。之後使用了if語句判斷a是否等於1,判斷正確則執行語句printf("變數a的值等於1");,條件判斷不成立則不執行 printf("變數a的值等於1");

從以上範例可以看出if語句判斷一個條件,這個條件編寫於if之後的圓括號內;以上範例的條件為a==1;在C語言中判斷兩個值是否相等使用兩個等於號 ==,在條件的圓括號後使用一對花括號{},在花括號內編寫條件判斷正確後需要執行的程式碼。

執行結果如下:
在這裡插入圖片描述
我們修改一下a的值改為2,檢視是否會執行 printf("變數a的值等於1");。修改後的程式碼如下:

#include<stdio.h>
void main(){
	int a=2;
	if(a==1){
		printf("變數a的值等於1");
	} 
}

執行結果如下:
在這裡插入圖片描述
從結果得知並沒有執行程式碼 printf("變數a的值等於1");
那如何使if的條件判斷不成立時有一個提示?這時可以使用else語句,else語句在條件不成立時將會執行else語句內的程式碼,else語句的內容也是在花括號內編寫,不過這個花括號是在else這個關鍵字(關鍵字指C語言中已有特殊功能的標誌,如int、if、float等)後。程式碼如下:

#include<stdio.h>
void main(){
	int a=2;
	if(a==1){
		printf("變數a的值等於1");
	} else{
		printf("變數a的值不等於1");
	}
}

以上程式碼在if語句的花括號後「無縫連線」了一個else關鍵字。在else關鍵字後有一對花括號,在該花括號內編寫a不等於1時所需要的提示語句即可。

執行結果如下:
在這裡插入圖片描述
如果我想a的值等於1時輸出「哈哈哈」,a等於2時輸出「嘿嘿嘿」,a等於3時輸出「呀呀呀」,a等於其它值時輸出「我都沒猜對」;以上需求可以使用if…elseif語句實現。程式碼如下:

#include<stdio.h>
void main(){
	int a=2;
	if(a==1){
		printf("哈哈哈");
	} else if(a==2){
		printf("嘿嘿嘿");
	} else if(a==3){
		printf("呀呀呀");
	}else{
		printf("我都沒猜對");
	} 
}

以上程式碼在if之後的else關鍵字後新增了if(注意if前面有個空格),隨後一個圓括號,圓括號內編寫其它條件,滿足則會執行當前else if 語句的花括號內的程式碼,當所有條件都不對的時候,執行else語句,也是在最末位的語句。

執行結果如下:
在這裡插入圖片描述
以上程式碼還可以改一下,讓我們在都沒猜對的值的情況下輸出值,程式碼如下:

#include<stdio.h>
void main(){
	int a=22;
	if(a==1){
		printf("哈哈哈");
	} else if(a==2){
		printf("嘿嘿嘿");
	} else if(a==3){
		printf("呀呀呀");
	}else{
		printf("我都沒猜對,其實a的值%d",a);
	} 
}

結果如下:
在這裡插入圖片描述
2.2 if語句判斷多個條件
以上學習的if只能判斷一個條件,若我需要判斷多個條件該怎麼辦?這時可以使用邏輯運運算元。例如當a等於1或2時表示天氣下雨和颳風,我則不去跑步,當a等於3或者4時則表示需要上學和補課,當a等於其它值是則可以去跑步。

首先我們使用簡單的if語句瞭解一下邏輯運運算元。程式碼如下:

#include<stdio.h>
void main(){
	int a=1;
	if(a==1||a==2){
		printf("天氣正在下雨或颳風");
	} 
}

以上程式碼著重關注if語句的條件 a==1||a==2,其中使用的「||」為邏輯運運算元「或」運算。或運算表示兩個表示式(表示式指是由數位、算符、數位分組符號等可以求得一個值的組合)的值有一個正確,那麼或運運算元(||)左右兩邊整體的值則為正確。當前或運運算元左邊為a1,右邊為a2,只要滿足其中一個則會執行 printf("天氣正在下雨或颳風");

執行結果如下:
在這裡插入圖片描述
修改一下程式碼完成以上所說的需求「a等於1或2時表示天氣下雨和颳風,我則不去跑步,當a等於3或者4時則表示需要上學和補課,當a等於其它值是則可以去跑步。」,程式碼如下:

#include<stdio.h>
void main(){
	int a=4;
	if(a==1||a==2){
		printf("天氣正在下雨或颳風");
	} else if(a==3||a==4){
		printf("我要去上學或者補課");
	}else{
		printf("我要去跑步");
	}
	
}

結果如下:
在這裡插入圖片描述
2.3 邏輯運運算元與&&
以上我們介紹了邏輯運運算元或(||),使用或運運算元只需要左右兩邊有一個表示式正確則左右兩邊整體的值為正確。在C語言中正確我們可以使用一個標識表示。這個標識為TRUE。

這一小節我們將學習需要表示式兩邊都正確整體的值才為正確的運運算元「與」,與運算使用運運算元&&。我們修改上一小節的程式,修改後程式碼如下:

#include<stdio.h>
void main(){
	int a=4;
	if(a==1&&a<5){
		printf("天氣正在下雨或颳風");
	} else if(a==3||a==4){
		printf("我要去上學或者補課");
	}else{
		printf("我要去跑步");
	}
}

以上程式碼if後的條件為a==1&&a<5,中間的運運算元更改為了&&,&&表示左右兩邊表示式均正確,當前運算才為正確。很明顯a等於,不滿足第一個條件,滿足 a==3||a==4條件,則會執行程式碼printf("我要去上學或者補課");。執行結果如下:
在這裡插入圖片描述
我們修改a的值為1,則會執行程式碼printf("天氣正在下雨或颳風");。(雖然a等於1的時候肯定小於5,這裡只是作為演示)程式碼如下:

#include<stdio.h>
void main(){
	int a=1;
	if(a==1&&a<5){
		printf("天氣正在下雨或颳風");
	} else if(a==3||a==4){
		printf("我要去上學或者補課");
	}else{
		printf("我要去跑步");
	}
	
}

結果如下:
在這裡插入圖片描述

二、瞭解switch語句的使用方法

switch語句與if作用相同,均是用與做流程控制,也和if語句一樣需要使用條件進行控制。
學習了if語句後switch的學習相對比較簡單,先列出一個格式說明:

switch(變數){
             
             case:
                  //程式碼內容 
                   break;//break是跳出作用,不像if只執行一處,如果不加break會執行下一句 
             case:
                  //程式碼內容 
                   break;//break是跳出作用,不像if只執行一處,如果不加break會執行下一句 
             case:
                  //程式碼內容 
                   break;//break是跳出作用,不像if只執行一處,如果不加break會執行下一句 
             default:
                  //程式碼內容    
             } 

switch是關鍵字,後接一個圓括號,圓括號內傳入一個變數;在switch圓括號後使用一對花括號,花括號內為switch語句的內容。使用case關鍵字後接一個值,假設switch傳入的變數值為1,則跳轉到case 1:後執行冒號後的程式碼,在程式碼的最後一行使用break關鍵字跳出。(break的作用為跳出)如不加break則會執行按順序往下的case內容。

先看一範例程式碼:

#include<stdio.h>

void main() {
    int a=1;
    switch(a){
                   case 1:
                        printf("選擇的是夫妻肺片");
                        break;
                   case 2:
                        printf("選擇的是腸粉");
                        break;
                   case 3:
                        printf("選擇的是口水蝦");
                        break;
                   case 4:
                        printf("選擇的是瀨尿蝦");
                        break;
                   case 5:
                        printf("選擇的是炸蝗蟲");
                        break;
                   default:
                        printf("沒有這個選單"); 
             }
}

以上程式碼中a的值等於1,switch傳入一個a作為條件,a為1則跳轉到case 1處執行冒號後的程式碼printf("選擇的是夫妻肺片");
執行結果如下:
在這裡插入圖片描述
我們嘗試在case 1與case 2語句塊中刪除最後一條語句 break; 看看是否會繼續執行下一個case 2:的內容。程式碼如下:

#include<stdio.h>

void main() {
    int a=1;
    switch(a){
                   case 1:
                        printf("選擇的是夫妻肺片");
                   case 2:
                        printf("選擇的是腸粉");
                   case 3:
                        printf("選擇的是口水蝦");
                        break;
                   case 4:
                        printf("選擇的是瀨尿蝦");
                        break;
                   case 5:
                        printf("選擇的是炸蝗蟲");
                        break;
                   default:
                        printf("沒有這個選單"); 
             }
}

結果如下:
在這裡插入圖片描述
從結果得知程式並沒有跳出。由於並沒有換行,我們使用\n符號可以進行換行,使執行結果更加清晰。修改程式碼如下:

#include<stdio.h>

void main() {
    int a=1;
    switch(a){
                   case 1:
                        printf("選擇的是夫妻肺片\n");
                   case 2:
                        printf("選擇的是腸粉\n");
                   case 3:
                        printf("選擇的是口水蝦\n");
                        break;
                   case 4:
                        printf("選擇的是瀨尿蝦\n");
                        break;
                   case 5:
                        printf("選擇的是炸蝗蟲\n");
                        break;
                   default:
                        printf("沒有這個選單\n"); 
             }
}

以上程式在printf中新增了\n,\n的作用是換行,輸出顯示時並不會輸出\n。
執行結果如下:
在這裡插入圖片描述

IT原創動漫、學習資料、原創教學請關注公眾號。
在這裡插入圖片描述

五、總結

通過以上描述與講解,我們瞭解了以下幾點內容:

  1. 瞭解了if語句if…else語句以及if…elseif…語句的使用方法
  2. 瞭解switch語句的使用方法
  3. 瞭解switch語句中break的作用
  4. 瞭解了邏輯運運算元或「||」用於判斷條件成立1邊則為正確
  5. 瞭解了邏輯運運算元或「&&」用於判斷條件均成立則為正確