C語言if else語句

2021-02-20 C語言三人行+

前面我們看到的代碼都是順序執行的,也就是先執行第一條語句,然後是第二條、第三條……一直到最後一條語句。

但是對於很多情況,順序結構的代碼是遠遠不夠的,比如一個程序限制了只能成年人使用,兒童因為年齡不夠,沒有權限使用。這時候程序就需要做出判斷,看用戶是否是成年人,並給出提示。

if-else語句

在C語言中,使用if語句進行判斷,請先看下面的代碼:

#include <stdio.h>

int main()

{

int age;

printf("請輸入你的年齡:");

scanf("%d", &age);

if(age>=18){

printf("恭喜,你已經成年,可以使用該軟體!\n");

}else{

printf("抱歉,你還未成年,不宜使用該軟體!\n");

}

return 0;

}

可能的運行結果:
請輸入你的年齡:23↙
恭喜,你已經成年,可以使用該軟體!

if else 語句的結構為:
if(表達式){
語句塊1
}else{
語句塊2
}

意思是:如果表達式的值為真,則執行語句塊1,否則執行語句塊2 。其執行過程可表示為下圖:

所謂語句塊(Statement Block),就是由{ }包圍的一個或多個語句的集合。如果語句塊中只有一個語句,也可以省略{ },例如:

if(age>=18) printf("恭喜,你已經成年,可以使用該軟體!\n");else printf("抱歉,你還未成年,不宜使用該軟體!\n");

由於if else 語句可以根據不同的情況執行不同的代碼,所以也叫分支結構或選擇結構,上面的代碼中,就有兩個分支。

求兩個數中的較大值:

#include <stdio.h>

int main()

{

int a, b, max;

printf("輸入兩個整數:");

scanf("%d %d", &a, &b);

if(a>b) max=a;

else max=b;

printf("%d和%d的較大值是:%d\n", a, b, max);

return 0;

}

運行結果:
輸入兩個整數:34 28↙
34和28的較大值是:34

本例中藉助變量max,用max來保存較大的值,最後將max輸出。

if語句

我們可以只使用 if 語句,也就是說,if else不必同時出現。if 語句的基本形式為:
if(表達式){
語句塊
}

意思是:如果表達式的值為真,則執行其後的語句塊,否則直接跳過。其過程可表示為下圖:


只使用 if 語句來求兩個數中的較大值:

#include <stdio.h>

int main()

{

int a, b, max;

printf("輸入兩個整數:");

scanf("%d %d", &a, &b);

max=b;

if(a>b) max=a;

printf("%d和%d的較大值是:%d\n", a, b, max);

return 0;

}

運行結果:
輸入兩個整數:34 28
34和28的較大值是:34

本例程序中,輸入兩個數a、b。把b先賦予變量max,再用 if 語句判別max和b的大小,如max小於b,則把b賦予max。因此max中總是大數,最後輸出max的值。

多個if else語句

if else語句也可以多個同時使用,構成多個分支,形式如下:
if(表達式1){
語句塊1
} else if(表達式2){
語句塊2
}else if(表達式3){
語句塊3
}else if(表達式m){
語句塊m
}else{
語句塊n
}

意思是:依次判斷表達式的值,當出現某個值為真時,則執行其對應的語句。然後跳到整個if語句之外繼續執行程序。 如果所有的表達式均為假,則執行語句塊n。然後繼續執行後續程序。多個 if else 語句的執行過程如下圖所示:


例如,判斷輸入的字符的類別:

#include <stdio.h>

int main(){

char c;

printf("Input a character:");

c=getchar();

if(c<32)

printf("This is a control character\n");

else if(c>='0'&&c<='9')

printf("This is a digit\n");

else if(c>='A'&&c<='Z')

printf("This is a capital letter\n");

else if(c>='a'&&c<='z')

printf("This is a small letter\n");

else

printf("This is an other character\n");

return 0;

}

運行結果:
Input a character:e
This is a small letter

本例要求判別鍵盤輸入字符的類別。可以根據輸入字符的ASCII碼來判別類型。由ASCII碼錶可知ASCII值小於32的為控制字符。在「0」和「9」之間的為數字,在「A」和「Z」之間為大寫字母, 在「a」和「z」之間為小寫字母,其餘則為其它字符。這是一個多分支選擇的問題,用多個 if else 語句編程,判斷輸入字符ASCII碼所在的範圍,分別給出不同的輸出。例如輸入為「e」,輸出顯示它為小寫字符。

在使用if語句時還應注意以下問題:
1) 在三種形式的if語句中,在 if 關鍵字之後均為表達式。 該表達式通常是邏輯表達式或關係表達式,但也可以是其它表達式,如賦值表達式等,甚至也可以是一個變量。例如:
if(a=5) 語句;
if(b) 語句;
都是允許的。只要表達式的值為非0,即為「真」。如在:
if(a=5)…;
中表達式的值永遠為非0,所以其後的語句總是要執行的,當然這種情況在程序中不一定會出現,但在語法上是合法的。

又如,有程序段:

if(a=b)

printf("%d",a);

else

printf("a=0");

本語句的語義是,把b值賦予a,如為非0則輸出該值,否則輸出「a=0」字符串。這種用法在程序中是經常出現的。

2) 在if語句中,條件判斷表達式必須用括號括起來。

3) 語句塊由{ }包圍,但要注意的是在}之後不要再加分號;。例如:

if(a>b){

a++;

b++;

}else{

a=0;

b=10;

}

if語句的嵌套

if 語句也可以嵌套使用,例如:

#include <stdio.h>

int main(){

int a,b;

printf("Input two numbers:");

scanf("%d %d",&a,&b);

if(a!=b){

if(a>b) printf("a>b\n");

else printf("a<b\n");

}else{

printf("a=b\n");

}

return 0;

}

運行結果:
Input two numbers:12 68
a<b

if 語句嵌套時,要注意 if 和 else 的配對問題。C語言規定,else 總是與它前面最近的 if 配對,例如:

if(a!=b)

if(a>b) printf("a>b\n");

else printf("a<b\n");

③和②配對,而不是和①配對。

相關焦點

  • [GO語言基礎] 五.順序控制語句和條件控制語句(if、else、switch)
    後續會結合網絡安全進行GO語言實戰深入,加油~這些年我學過各種程式語言,從最早的C語言到C++,再到C#、PHP、JAVA,再到IOS開發、Python,到最新的GO語言,學得是真的雜。有時候覺得程式語言恰恰是最簡單的,而通過一門程式語言能夠解決實際問題或深入底層才是其價值所在,並且當我們學好一門程式語言後,其他程式語言都非常類似,殊途同歸,學起來也很迅速。
  • R語言決策結構,if語句,if..else語句
    if語句的流程圖如下 -> x<-9 > if(is.numeric(x)){ +    print("x is a numberic") + } [1] "x is a numberic"法在R語言中創建if..else語句的基本語法是 -if(boolean_expression
  • 單片機c語言教程:C51複合語句和條件語句
    複合語句之間用{}分隔,而它內部的各條語句還是需要以分號「;」 結束。複合語句是允許嵌套的,也是就是在{}中的{}也是複合語句。複合語句在程序運行時,{}中的各行單語句是依次順序執行的。單片機C語言中能將複合語句視為一條單語句,也就是說 在語法上等同於一條單語句。
  • C語言程序控制語句——if
    if( 30> a > 20 ){printf("a 大於 20 \r\n");printf("a 小於 30 \r\n");}關係運算符C語言中提供了6種關係運算符,用於關係表達式:①<(小於)②<=(小於或等於)③&
  • 基礎 | C 語言中的 if 選擇語句
    if 語句是指程式語言(包括 c 語言、C#、VB、java、彙編語言等)中用來判定所給定的條件是否滿足,根據判定的結果(真或假)決定執行給出的兩種操作之一。對於雙分支if - else 語句、if 分支或者 else 分支中又包含 if 或 if - else 語句,這稱為 if 語句的嵌套。
  • 如何學好C語言判斷語句?攻略if語句是第一步
    C語言,是全球使用最多的程式語言。上次我們談到了switch語句,但在C語言中,if條件構成的選擇結構程序很重要。在實際問題中,往往需要對不同變量進行比較,然後分別執行不同的語句。如何使用if語句呢?小編在這裡談一談if語句基本用法與使用技巧。
  • C語言for,while,if-else,return語句的綜合使用
    #includevoid main(){int i,j,k;j=10;while(j--) //j控制換行{ i=10-j;while(i--) //i控制循環,而且控制的是緊隨其後的語句,即printf("*");而控住不了printf("");if(i<3) //if-else的用法是滿足if則執行其後的語句,否則執行else。
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言分支判斷語句
    本節介紹《Linux系統中C語言控制語句之分支語句》。1、C語言的語句概述1)C 語言提供了以下類型的分支判斷語句。if.c例子3、if-else語句一個 if 語句 後可跟一個可選的 else 語句,else 語句在布爾表達式為 false 時執行。
  • 淺談C語言中if語句
    在編程處理學生成績的應用時,通常用if-else-if語句形式,就應該把60分及以上的學生處理情況直接放到if語句之後,40-60分段放到else if語句後面,低於40分的情況放到else語句後面處理,這種安排很符合大家的邏輯思維習慣。如果把順序顛倒,if語句處理40分以下,else if語句處理40-60分段,60分及以上放到else語句後面,無形中增加了成倍的成績比較次數。
  • 09.為什麼Python循環語句裡也有else?
    2. if flag 和 for j 語句縮進保持一致,才能保證兩個語句的地位相等。if 語句始終被執行。:breakelse:count += 1print(i)print(count)循環語句裡的else是Python語言特有的,有趣的語法。
  • C語言中的分支語句,就是這麼簡單
    if語句一個 if 語句 後可跟一個可選的 else 語句,else 語句在布爾表達式為假時執行。語法if(表達式){ // 如果表達式為真將執行的語句}else{ // 如果表達式為假將執行的語句}如果布爾表達式為 true,則執行 if 塊內的代碼。如果布爾表達式為 false,則執行 else 塊內的代碼。
  • R語言 控制流:for、while、ifelse和自定義函數function
    ,多次調用,一勞永逸)3.1 自定義函數編寫3.2 source()文件間調用自定義函數分支和循環是通用程式語言中常見的兩大控制流。接下來分別從分支控制和循環控制,對R語言中的控制流做簡單講述。正文1 分支控制      1.1 if-else經典的流程控制關鍵字是if-else,並可以把多個if-else語句連接到一起#if-else分支控制流語法if ( test_expression1
  • c語言——基本語法
    c語言由Dennis MacAlistair Ritchie創始,是普適性最強的一種電腦程式編輯語言,它不僅可以發揮出高級程式語言的功用,還具有彙編語言的優點。本期將簡潔地介紹c的基本語法。輸出時若要指定數據寬度和小數位數,用%m.nf,例如%7.2f表示,輸出數據佔7列,其中包括2位小數l,附加字符,ld和lu表示長整型,lld表示雙長整型,lf表示double型數據一、if語句格式:if (表達式1)               {語句1}           else if (
  • Python if else條件語句詳解
    在 Python 中,可以使用 if else 語句對條件進行判斷,然後根據不同的結果執行不同的代碼,這稱為選擇結構或者分支結構。Python 中的 if else 語句可以細分為三種形式,分別是 if 語句、if else 語句和 if elif else 語句,它們的語法和執行流程如表1所示。
  • Java中我如何去除if...else...語句?
    而且,我們是去除if…else…的語句,這樣的方式雖然好像沒有了if…else…語句,但是本質上並不是最好的方式,只是提供了一種思維方式。讀《重構 改善既有代碼的設計》有一條就是,以多態取代條件表達式。這是才是最本質的解決方式。這裡的去除if…else…語句,不是遇見了if…else…語句就去除。
  • C語言if語句
    if語句的三種基本形式1.單分支一般形式:if(表達式)語句執行流程:當表達式為真時,執行語句2.雙分支一般形式:if(表達式)語句1else語句2執行流程:當表達式為真時執行語句1,否則執行語句23.多分支一般形式:if(表達式1)
  • 單片機C語言教程-基礎語句
    c語言提供了多種語句來實現這些程序結構。本文將介紹這些基本語句及其應用,使讀者對c程序有一個初步的認識,為以後的學習打下基矗  c程序的語句  c程序的執行部分是由語句組成的。程序的功能也是由執行語句實現的。
  • 三、C語言表達式、選擇結構
    3)if 語句a、else 是與最接近的if且沒有else的語句匹配。(c= =t)printf(「c」);else pritnf(「d」);通過習題,要熟悉以上幾種if語句!>屬於else if的嵌套if語句,不執行。
  • PIC單片機C語言程序設計(4)
    2.if語句  if 語句也稱為條件語句,是C 語言中轉移語句之一。在設計C 語言程序時,常常要根據某些條件以決定程序運行的流向,這時就需要if 語句來實現。
  • 51單片機之C語言-4.5基本語句之條件選擇語句
    條件選擇語句之if語句本文引用地址:http://www.eepw.com.cn/article/201611/319554.htm前面我們講了數據類型,運算符及表達式。C語言也是一種語言,既然是語言,一定有連接詞。這些連接詞可以用來表示假設,循環等等。我們先來看看假設if語句。