欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言之選擇分支語(yǔ)句詳解

 更新時(shí)間:2021年12月20日 15:47:21   作者:vscode_Gin  
大家好,本篇文章主要講的是C語(yǔ)言之選擇分支語(yǔ)句詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽

1.if-else語(yǔ)句

1.1 例子與總結(jié)

例子:

①只有一個(gè)if

    if (1 == a)
    {
        printf("yes\n");
    }

②if-else語(yǔ)句

    if (1 == a)
    {
        printf("yes\n");
    }
    else
    {
        printfr("no\n");
    }

③if-else if-else if-else語(yǔ)句

    printf("今天星期幾?\n");
    int a = 0;
    scanf("%d", &a);
    if (1 == a)
    {
        printf("Monday\n");
    }
    else if (2 == a)
    {
        printf("Tuesday\n");
    }
    else if (3 == a)
    {
        printf("Wednesday\n");
    }
    else
    {
        printf("Other Day\n");
    }

總結(jié):

if-else語(yǔ)句有三種形式。

①只有一個(gè)if,沒(méi)有對(duì)應(yīng)的else。(適用于只有一個(gè)判斷的語(yǔ)句)

初學(xué)者在學(xué)習(xí)if-else語(yǔ)句的時(shí)候,可以只用這個(gè)if解決大部分選擇分支語(yǔ)句題目。

如:寫(xiě)一個(gè)程序,90-100為A,80-90為B,70-80為C,其他為D

#include <stdio.h>
 
int main()
{
 
    
    float grade = 0;
    scanf("%f", &grade);
    if ( (grade >= 90) && (grade <= 100) )
    {
        printf("A\n");
    }
    if ( (grade >= 80) && (grade < 90) )
    {
        printf("B\n");
    }
    if ( (grade >= 70) && (grade < 80) )
    {
        printf("C\n");
    }
    if (grade < 70)
    {
        printf("D\n");
    }
 
    return 0;
}

反思:初學(xué)者寫(xiě)這種題目的時(shí)候,剛開(kāi)始建議先采用這種形式,等熟悉了可以用②和③。其實(shí)這種寫(xiě)代碼的方式就和枚舉差不多。

②一個(gè)if,一個(gè)與之對(duì)應(yīng)的else。(適用于A或B的情況)

eg:根據(jù)硬幣的正反面,決定是否聽(tīng)課。正面假定為1,即聽(tīng)課。反面假定為0,即逃課。

#include <stdio.h>
 
int main()
{
    int a = 1;
    scanf("%d", &a);
    if (1 == a)//1即為正面
    {
        printf("聽(tīng)課\n");
    }
    else//只有正面與非正面(即反面)
    {
       printf("聽(tīng)課\n");
    }
    
    return 0;
}

③if-n個(gè)else if-最后else(適用于至少三種情況的例子)

eg:以①中成績(jī)輸出為例子。

#include <stdio.h>
 
int main()
{
 
    
    float grade = 0;
    scanf("%f", &grade);
    if ( (grade >= 90) && (grade <= 100) )
    {
        printf("A\n");
    }
    else if ( (grade >= 80) && (grade < 90) )
    {
        printf("B\n");
    }
    else if ( (grade >= 70) && (grade < 80) )
    {
        printf("C\n");
    }
    else
    {
        printf("D\n");
    }
 
    return 0;
}

1.2 if與else的配對(duì)問(wèn)題

eg:

    float grade = 0;
    scanf("%f", &grade);
    if ( (grade >= 90) && (grade <= 100) )
    {
        printf("A\n");
    }
        if (0 == grade)
        printf("鴨蛋\n");
    else
    {
        printf("正分\n");
    }

親愛(ài)的讀者,請(qǐng)你判斷一下else與哪個(gè)if配對(duì)?

else配對(duì)規(guī)則是與最近的還未配對(duì)的if配對(duì)。

因此,例子中,if (0 == grade)和上面的if均沒(méi)有配對(duì),else與最近的if (0 == grade)配對(duì)。

總結(jié):else與離它最近的還未配對(duì)的if配對(duì),if同理。

1.3 if-else代碼編寫(xiě)建議

①無(wú)論if-else后面執(zhí)行的語(yǔ)句是一個(gè)語(yǔ)句或者是一個(gè)語(yǔ)句塊,都建議打上大括號(hào)。

eg:

if ( (grade >= 90) && (grade <= 100) )
    {
        printf("A\n");
    }
        if (0 == grade)
        {
          printf("鴨蛋\n");
        }
        
        else
        {
          printf("正分\n");
        }

②if中的括號(hào)表示判斷條件,如果出現(xiàn)數(shù)字,特別是等于0一類(lèi)的,建議數(shù)字放左邊。

不太建議把數(shù)字放右邊,因?yàn)榉抛筮叴a很容易發(fā)現(xiàn)問(wèn)題

if (0 == grade)

如果不小心寫(xiě)成0 = grade,編譯器會(huì)報(bào)錯(cuò)。

③出現(xiàn)多個(gè)if-else,甚至是if-else嵌套代碼,建議代碼最好有縮進(jìn)。因?yàn)槿绻e例,這個(gè)代碼寫(xiě)起來(lái)較為麻煩,后期作者刷題將會(huì)補(bǔ)上。

1.4 其他需要注意的問(wèn)題

①if括號(hào)內(nèi)的條件問(wèn)題

這里需要注意,if-else內(nèi)的條件只有0與1,非0就是1.

eg:

    if (i = -1)
    if (i)//i=-1
    if (0)
    if (-1)

第一行是把-1賦值給i,非0,直接執(zhí)行if。

第二行為i,具體需要判斷i的大小,正如其下的兩行,第三行為0不執(zhí)行if,第四行為-1為真執(zhí)行if。

②if-else的相關(guān)語(yǔ)句都可以進(jìn)行嵌套。

③if-else if-else的知識(shí)點(diǎn)。

eg:

#include <stdio.h>
 
int main()
{
 
    
    float grade = 0;
    scanf("%f", &grade);
    if ( (grade >= 90) && (grade <= 100) )
    {
        printf("A\n");
    }
    else if ( (grade >= 80) )
    {
        printf("B\n");
    }
    else if ( (grade >= 70) )
    {
        printf("C\n");
    }
    else
    {
        printf("D\n");
    }
 
    return 0;
}

else if中的條件其實(shí)是默認(rèn)是非上一行的if范圍或者if-else范圍的。

如例子中的代碼的第一個(gè)else if默認(rèn)grade < 90,第二個(gè)else if默認(rèn)grade < 80.

2. switch (case)語(yǔ)句

2.1例子和總結(jié)

這里,我依舊用成績(jī)和對(duì)應(yīng)等級(jí)寫(xiě)了一個(gè)代碼。

#include <stdio.h>
int main()
{
    float grade;
    printf("Input integer number:");
    scanf("%f", &grade);
    int shiwei = (int) (grade / 10);
    switch (shiwei)
    {
        case 10:
        case 9:
        printf("A\n");
        break;
        case 8:
        printf("B\n");
        break;
        case 7:
        printf("C\n");
        break;
        default:
        printf("D\n");
        break;
    }
 
    return 0;
}

分析:我注意到不同等級(jí)對(duì)應(yīng)的分?jǐn)?shù)對(duì)十位數(shù)是不一樣的,同時(shí)符合switch(整型表達(dá)式)和case 整型常量表達(dá)式的條件。

總結(jié):

switch (整型表達(dá)式/整型變量)

{

? ?case 常量整數(shù)/整型常量表達(dá)式:

? ?語(yǔ)句;/語(yǔ)句塊;

? break;

......

}

②switch語(yǔ)句執(zhí)行步驟及各個(gè)操作符表達(dá)含義

swich-選擇表達(dá)式的關(guān)鍵字

case:各種情況分支,同時(shí)也是語(yǔ)句執(zhí)行的起點(diǎn)

語(yǔ)句塊:執(zhí)行語(yǔ)句

break:跳出switch語(yǔ)句。

default:除case以外的情況均默認(rèn)為default,其他情況從這里開(kāi)始。

eg:以2.1中的代碼作為例子進(jìn)行講解

一、假設(shè)grade為100,則shiwei=10,進(jìn)入switch語(yǔ)句,以case 10為起點(diǎn),開(kāi)始執(zhí)行語(yǔ)句。case 10后面不是break也沒(méi)有語(yǔ)句塊,繼續(xù)執(zhí)行case 9,再執(zhí)行打印A的操作,接下來(lái)碰到break跳出switch語(yǔ)句。

二、假設(shè)輸入的位101,shiwei=11,不是case的情況,進(jìn)入default,打印D,再碰到break跳出。

2.2 switch語(yǔ)句其他知識(shí)點(diǎn)

①switch支持嵌套

②switch中的case和default無(wú)所謂順序。

③switch中括號(hào)為整型(無(wú)所謂常量變量),case必須為整型常量,如case 9+1也是可以的。

到此這篇關(guān)于C語(yǔ)言之選擇分支語(yǔ)句詳解的文章就介紹到這了,更多相關(guān)C語(yǔ)言選擇分支語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中的取余函數(shù)remainder與fmod詳解

    C++中的取余函數(shù)remainder與fmod詳解

    這篇文章主要為大家詳細(xì)介紹了C++中的取余函數(shù)remainder、fmod的具體使用以及自編的remainder及fmod,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)
    2023-05-05
  • C++ 基數(shù)排序的實(shí)現(xiàn)實(shí)例代碼

    C++ 基數(shù)排序的實(shí)現(xiàn)實(shí)例代碼

    這篇文章主要介紹了C++ 基數(shù)排序的實(shí)現(xiàn)實(shí)例代碼的相關(guān)資料,這里附有實(shí)例代碼,幫助大家學(xué)習(xí)理解,需要的朋友可以參考下
    2016-11-11
  • 解析C#中不一樣的大小寫(xiě)轉(zhuǎn)換

    解析C#中不一樣的大小寫(xiě)轉(zhuǎn)換

    本篇文章是對(duì)C#中大小寫(xiě)轉(zhuǎn)換的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • c++ 如何合并兩個(gè)有序鏈表

    c++ 如何合并兩個(gè)有序鏈表

    這篇文章主要介紹了c++ 如何合并兩個(gè)有序鏈表,幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下
    2020-08-08
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生學(xué)籍管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生學(xué)籍管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生學(xué)籍管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++ 實(shí)現(xiàn)哈希表的實(shí)例

    C++ 實(shí)現(xiàn)哈希表的實(shí)例

    這篇文章主要介紹了C++ 實(shí)現(xiàn)哈希表的實(shí)例的相關(guān)資料,這里使用C++實(shí)現(xiàn)哈希表的實(shí)例幫助大家徹底理解哈希表的原理,需要的朋友可以參考下
    2017-08-08
  • 使用VSCode和VS2017編譯調(diào)試STM32程序的實(shí)現(xiàn)

    使用VSCode和VS2017編譯調(diào)試STM32程序的實(shí)現(xiàn)

    這篇文章主要介紹了使用VSCode和VS2017編譯調(diào)試STM32程序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • VC6.0常見(jiàn)鏈接錯(cuò)誤與解決方法

    VC6.0常見(jiàn)鏈接錯(cuò)誤與解決方法

    這篇文章主要介紹了VC6.0開(kāi)發(fā)中一些常見(jiàn)鏈接錯(cuò)誤的解決方法,需要的朋友可以參考下
    2013-07-07
  • c++ 虛函數(shù),虛表相關(guān)總結(jié)

    c++ 虛函數(shù),虛表相關(guān)總結(jié)

    這篇文章主要介紹了c++ 虛函數(shù),虛表的的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下
    2021-03-03
  • C語(yǔ)言?程序的編譯系統(tǒng)解析

    C語(yǔ)言?程序的編譯系統(tǒng)解析

    編譯程序的基本功能是把源程序(高級(jí)語(yǔ)言)翻譯成目標(biāo)程序。但是,作為一個(gè)具有實(shí)際應(yīng)用價(jià)值的編譯系統(tǒng),除了基本功能之外,還應(yīng)具備語(yǔ)法檢查、調(diào)試措施、修改手段、覆蓋處理、目標(biāo)程序優(yōu)化、不同語(yǔ)言合用以及人-機(jī)聯(lián)系等重要功能
    2022-02-02

最新評(píng)論