第1節
什麼是語句
在C語言中由一個
;
隔開的就是一個語句。例如
printf("Misaki");
;
1 + 2;
等等。
分支語句
if語句
分支語句又叫選擇結構,之前為大家示範過的if語句就是一個分支語句,在C語言邏輯中有着大量的使用範疇,是不可或缺的一部分。
接下來為大家示範if的幾種使用形式。
形式一:
if (表達式)
語句;
形式二:
if (表達式)
語句1;
else
語句2;
形式三:
if (表達式)
語句1;
else if (表達式)
語句2;
else
語句三;
簡單解釋一下,如果if括号中的表達式成立則執行語句1,如果不成立則進入else if表達式進行判斷,如果還不成立直接執行else。而在C語言中可沒有定義真假的變量,是以我們隻好拿整數進行替代。**在C語言中0表示真,非0表示假,**進行條件判斷的表達式的值都會用0和非0進行替代(但是一般多拿1來進行表示真的替代)。
同時我建議在寫if語句的時候下面條件執行的語句都能用
{}
來将他們括起來,表示這是一個代碼塊,這樣我們不僅可以在代碼塊中寫多個執行語句,也使程式更加可讀。
if (表達式)
{
語句清單1;
}
else if (表達式)
{
語句清單2;
}
else
{
語句清單3;
}
system("pause");
同時有一點需要強調,else永遠與上面離它最近的if進行匹, 大家不要被縮進格式所迷惑。接下來進行幾個執行個體示範。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>//添加頭檔案
#include <stdlib.h>
int main()//主函數,函數入口
{
int coding = 0;
printf("你會好好敲代碼每天三小時,一次500行,不敲夠不睡覺,像對待女朋友一樣對待她麼?\n");
scanf("%d", &coding);
if (coding == 1)
{
printf("加油堅持你會成功!\n");
}
else if(coding == 0)
{
printf("回家種田吧!\n");
}
else
{
printf("猶豫不決你在等什麼?\n");
}
system("pause");
}
我們的if語句就講到這裡,if語句使用十分簡單卻也十分靈活,但是大家千萬注意盡量少的使用選擇嵌套可以增強代碼可讀性。
switch語句
switch語句也是一種分支語句,多用于多分支的情況。在某些情況下使用switch往往有着好的效果。
比如說如果我們要根據使用者輸入的1-7來列印相應的星期,比如說使用者輸入1,我們則列印“星期一“”。在這種多分支的情況下,往往是switch語句的拿手好菜。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>//添加頭檔案
#include <stdlib.h>
int main()//主函數,函數入口
{
int choice = 0;
printf("請輸入數字:");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期日\n");
break;
default:
break;
}
system("pause");
}
switch的文法很簡練,
switch(整形表達式)
,下方的大括号中是一些case語句,
case 整形常量表達式: 語句;
當case後的常量==switch中的整形表達式的值時,case後的語句就會被執行,而switch語句一般都會配備一個
default: 語句;
這是**在case語句沒有被比對上的時候就會執行default語句中的内容。**大家還可以注意到每一個語句後都跟了個
break;
語句,這個break我們在循環中提到過一些,是跳出循環用的,不過在這裡則是跳出switch用的,如果不加break語句,程式則會跟着比對的case一直往下執行語句知道遇到break或者switch語句結束為止,是以break在這裡不可或缺的,這也是switch一個很大的缺陷。
switch雖然适用于多分支條件的情況下,但其本身有着極大的缺陷,并且實際上switch能實作的分支if語句也同樣可以實作,有時候反倒會使我們的工作更加簡單,是以我并不推薦在程式裡經常使用switch,其中可讀性低也是很重要的一部分原因。
循環語句
while循環
while我們在初始C語言的章節已經涉獵,他是非常簡單的一種循環語句,因為使用起來和if十分類似,不同點是if語句隻判斷一次條件,執行完則退出語句,但是while則是在每一輪循環結束後都要重新判斷條件,如果條件依然成立則繼續執行語句。
列印0 - 9;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>//添加頭檔案
#include <stdlib.h>
int main()//主函數,函數入口
{
int i = 0;
while (i < 10)
{
printf("%d\t", i);
i += 1;
}
printf("\n");
system("pause");
}
我相信大家對while的用法已經非常熟悉了,但是想要靈活使用我們還要在之後的學習中多加練習!
for循環
for循環語句是一種相比while更為友善的循環語句,他更加便于書寫,可讀性更高。
同樣是輸出0 - 9我們用for語句再寫一遍。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>//添加頭檔案
#include <stdlib.h>
int main()//主函數,函數入口
{
for (int i = 0; i < 10; i++)
{
printf("%d\t", i);
}
printf("\n");
system("pause");
}
for語句文法更為精煉,将循環變量的更新條件的判斷,循環變量的初始化融為一體。
for(語句1; 語句2; 語句3)
{
循環内容;
}
for循環中語句1是循環變量的初始化,永遠隻執行一次,就是在循環剛開始的時候才執行;語句2則是循環條件的判斷,隻有在語句2滿足的情況下才執行循環内容,語句2在每次循環開始前都要執行進行判斷;語句3是循環變量的更新,在while語句中這一條往往是寫在循環體裡的,而for則将它提煉出來,這條語句在每一次循環結束後都會執行。是以for循環語句的執行順序大概是:語句1->語句2(條件成立)->循環内容->語句3->語句2(條件成立)->循環内容->語句3->…->語句3->語句2(條件不成立)->循環結束。
由此可見for循環語句的文法更為精煉快捷易于書寫,且可讀性更好,這裡指的一提的是,for語句中括号裡的三條語句都可省略不寫,但是分号不可省略,而當語句2省略時則會變成死循環。
for循環語句還有一些變種,我們之後學習中都會遇到,到時候大家需要小心留意。
do-while語句
do-while語句是while語句的變種,他們十分相似,唯一不同點是前者執行完一次循環體後才會進行條件判斷, 也就是說其至少執行一次。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>//添加頭檔案
#include <stdlib.h>
int main()//主函數,函數入口
{
int i = 10;
do
{
printf("%d", i);
} while (i > 20);
printf("\n");
system("pause");
}
從上面這個代碼就可以看出明明while()中的條件不符合可依然執行了一次循環體,這就是while的獨到之處。
由于do-while語句使用條件有限,是以使用情況不多,這裡不再深入講解。