if語句和while循環(huán)
C語言中,if語句和while循環(huán)都會用到布爾表達式。下面是一個使用if語句的簡單例子:
#include
int main()
{int b;printf("輸入一個值:");scanf("%d", &b);if (b < 0)
printf("值為負數(shù)n");return 0;}
程序從用戶讀入一個數(shù)字,然后用if語句測試這個數(shù)字是否小于零。如果小于零則打印一條消息,否則什么也不做。程序中的(b<0)稱為布爾表達式。C需要求出此表達式的值才能決定是否打印后面的消息。如果布爾表達式的結(jié)果是真,那么C將執(zhí)行緊接在if語句后面的一行代碼(或花括號中的代碼塊);如果布爾表達式的結(jié)果是假,那么C將跳過緊接在if語句后面的代碼行或代碼塊。
?
|
?
下面是一個稍復(fù)雜一點的例子:
#include
int main()
{int b;
printf("輸入一個值:");
scanf("%d", &b);
if (b < 0)
printf("值為負數(shù)n");
else if (b == 0)
printf("值為0n");
else
printf("值為正數(shù)n");
return 0;}
這個例子中的else if和else部分處理了值為零或為正的情況。
下面是一個更復(fù)雜一些的布爾表達式:
if ((x==y) && (j>k))
z=1;
else
q=10;
上面這個if語句的意思是:“如果變量x和y的值相等,而且變量j的值大于k的值,那么令變量z的值等于1,否則令變量q的值等于10?!痹贑程序中,您經(jīng)常使用類似這樣的if語句進行判斷。一般而言,大多數(shù)判斷都很簡單,像第一個例子。但偶爾也會遇到復(fù)雜一些的情況。
請注意,C使用==判斷相等,而用=為變量賦值。&&在C中代表布爾操作符與。
這是C語言中的所有的布爾操作符:
等于 ==
小于 <
大于 >
小于等于 <=
大于等于 >=
不等于 !=
與 &&
或 ||
非 !
您會發(fā)現(xiàn),while聲明和if聲明使用起來一樣簡單。舉個例子:
while (a < b)
{printf("%dn", a);a = a + 1;}
?
|
?
C還提供一種do-while結(jié)構(gòu):
do{printf("%dn", a);a = a + 1;}while (a < b);
C中的for循環(huán)只不過是while語句的精簡寫法。例如,您有如下C代碼:
x=1;while (x<10)
{……x++; }
您可以用for循環(huán)改寫成下面這樣:
for(x=1; x<10; x++)
{……}
請注意,while循環(huán)實際包括了三個步驟:初始化(x=1)、判斷(x<10)和增量(x++)。使用for循環(huán)可以把三個步驟寫在同一行中,但并不限制三個部分的具體內(nèi)容。例如,您有如下C代碼:
a=1;
b=6;
while (a < b)
{a++;printf("%dn",a);}
用for循環(huán)就可以寫為:
for (a=1,b=6; a < b; a++,printf("%dn",a));
這樣雖然有點不易讀懂,但還是允許的。在for循環(huán)的初始化和增量(不包括測試)部分,我們可以使用多條語句并用逗號操作符加以分隔。許多 C 程序員喜歡用一行代碼“濃縮”進很多信息。但也有許多人認為這樣會使代碼更加難以理解,所以他們選擇分開來寫。
評論
查看更多