在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ 練習(xí)12:If,Else If,Else
練習(xí)9:數(shù)組和字符串
練習(xí)6:變量類型
練習(xí)3:格式化輸出
練習(xí)4:Valgrind 介紹
練習(xí)28:Makefile 進(jìn)階
練習(xí)14:編寫并使用函數(shù)
練習(xí)21:高級(jí)數(shù)據(jù)類型和控制結(jié)構(gòu)
練習(xí)20:Zed的強(qiáng)大的調(diào)試宏
練習(xí)18:函數(shù)指針
練習(xí)0:準(zhǔn)備
練習(xí)15:指針,可怕的指針
練習(xí)27:創(chuàng)造性和防御性編程
練習(xí)22:棧、作用域和全局
練習(xí)10:字符串?dāng)?shù)組和循環(huán)
練習(xí)8:大小和數(shù)組
練習(xí)16:結(jié)構(gòu)體和指向它們的指針
練習(xí)7:更多變量和一些算術(shù)
練習(xí)23:認(rèn)識(shí)達(dá)夫設(shè)備
練習(xí)12:If,Else If,Else
練習(xí)2:用Make來(lái)代替Python
練習(xí)1:?jiǎn)⒂镁幾g器
練習(xí)11:While循環(huán)和布爾表達(dá)式
練習(xí)5:一個(gè)C程序的結(jié)構(gòu)
練習(xí)24:輸入輸出和文件
練習(xí)25:變參函數(shù)
練習(xí)13:Switch語(yǔ)句
練習(xí)19:一個(gè)簡(jiǎn)單的對(duì)象系統(tǒng)
練習(xí)26:編寫第一個(gè)真正的程序
導(dǎo)言:C的笛卡爾之夢(mèng)
練習(xí)17:堆和棧的內(nèi)存分配

練習(xí)12:If,Else If,Else

if語(yǔ)句是每個(gè)編程語(yǔ)言中共有的特性,包括C語(yǔ)言。下面是一段代碼,使用了if語(yǔ)句來(lái)確保只傳入了一個(gè)或兩個(gè)命令行參數(shù):

#include <stdio.h>

int main(int argc, char *argv[])
{
    int i = 0;

    if(argc == 1) {
        printf("You only have one argument. You suck.\n");
    } else if(argc > 1 && argc < 4) {
        printf("Here's your arguments:\n");

        for(i = 0; i < argc; i++) {
            printf("%s ", argv[i]);
        }
        printf("\n");
    } else {
        printf("You have too many arguments. You suck.\n");
    }

    return 0;
}

if語(yǔ)句的格式為:

if(TEST) {
    CODE;
} else if(TEST) {
    CODE;
} else {
    CODE;
}

下面是其它語(yǔ)言和C的差異:

  • 像之前提到的那樣,TEST表達(dá)式值為0時(shí)為false,其它情況為true。
  • 你需要在TEST周圍寫上圓括號(hào),其它語(yǔ)言可能不用。
  • (只有單條語(yǔ)句時(shí))你并不需要使用花括號(hào){}來(lái)閉合代碼,但是這是一種非常不好的格式,不要這么寫?;ɡㄌ?hào)讓一個(gè)分支的代碼的開(kāi)始和結(jié)束變得清晰。如果你不把代碼寫在里面會(huì)出現(xiàn)錯(cuò)誤。

除了上面那些,就和其它語(yǔ)言一樣了。else if或者else的部分并不必須出現(xiàn)。

你會(huì)看到什么

這段代碼非常易于運(yùn)行和嘗試:

$ make ex12
cc -Wall -g    ex12.c   -o ex12
$ ./ex12
You only have one argument. You suck.
$ ./ex12 one
Here's your arguments:
./ex12 one 
$ ./ex12 one two
Here's your arguments:
./ex12 one two 
$ ./ex12 one two three
You have too many arguments. You suck.
$

如何使它崩潰

使這段代碼崩潰并不容易,因?yàn)樗?jiǎn)單了。嘗試把if語(yǔ)句的測(cè)試表達(dá)式搞亂:

  • 移除else部分,使它不能處理邊界情況。
  • &&改為||,于是你會(huì)把“與”操作變成“或”操作,并且看看會(huì)發(fā)生什么。

附加題

  • 我已經(jīng)向你簡(jiǎn)短地介紹了&&,它執(zhí)行“與”操作。上網(wǎng)搜索與之不同的“布爾運(yùn)算符”。
  • 為這個(gè)程序編寫更多的測(cè)試用例,看看你會(huì)寫出什么。
  • 回到練習(xí)10和11,使用if語(yǔ)句使循環(huán)提前退出。你需要break語(yǔ)句來(lái)實(shí)現(xiàn)它,搜索它的有關(guān)資料。
  • 第一個(gè)判斷所輸出的話真的正確嗎?由于你的“第一個(gè)參數(shù)”不是用戶輸入的第一個(gè)參數(shù),把它改正。