if語句的一般形式或語法是:
if(expression) Statement1; Next_statement;
請注意,第一行末尾沒有分號。
第二行可以直接寫在第一行之后,如下所示:
if(expression) Statement1;
括號中的表達式可以是導(dǎo)致值為true或false的任何表達式。
如果表達式為true,則執(zhí)行Statement1,之后程序繼續(xù)使用Next_statement。
如果表達式為false,則會跳過Statement1,并使用Next_statement立即繼續(xù)執(zhí)行。
因為if語句的控制表達式預(yù)期會產(chǎn)生一個布爾結(jié)果,所以編譯器將安排將產(chǎn)生數(shù)值結(jié)果的if表達式的結(jié)果轉(zhuǎn)換為bool類型。
這里有一個語句說明了這一點:
if(count) printf("The value of count is not zero.\n");
如果count不為0,則只會產(chǎn)生輸出,因為count的值為0將導(dǎo)致if表達式的值為false。
count的任何非零值將導(dǎo)致表達式為true。
以下代碼顯示了if語句的簡單示例
#include <stdio.h>
int main(void)
{
int number = 0;
printf("\nEnter an integer between 1 and 10: ");
scanf("%d",&number);
if(number > 5)
printf("You entered %d which is greater than 5\n", number);
if(number < 6)
printf("You entered %d which is less than 6\n", number);
return 0;
}
上面的代碼生成以下結(jié)果。
if..then的語法模型可以表示如下:
if (conditional) { // do something }else{ // do another job }
可以通過邏輯或/和比較操作獲得條件。
if-else語句的語法如下:
if(expression) Statement1; else Statement2; Next_statement;
在這里,你有一種或兩種情況。您將始終執(zhí)行Statement1或Statement2,具體取決于表達式是否導(dǎo)致值為true或false。
如果expression為true,則執(zhí)行Statement1,并繼續(xù)執(zhí)行Next_statement。
如果expression為false,則執(zhí)行else關(guān)鍵字后面的Statement2,并繼續(xù)執(zhí)行Next_statement。
#include <stdio.h>
int main(void)
{
const double PRICE = 3.50; // Unit price in dollars
int quantity = 0;
printf("Enter the number that you want to buy:");
scanf(" %d", &quantity); // Read the input
double total = 0.0; // Total price
if(quantity > 10) // 5% discount
total = quantity * PRICE * 0.95;
else // No discount
total = quantity*PRICE;
printf("The price for %d is $%.2f\n", quantity, total);
return 0;
}
上面的代碼生成以下結(jié)果。
您可以使用if語句中大括號{}之間的語句塊。
當if表達式的值為true時,可以提供要執(zhí)行的幾個語句。
涉及語句塊的if語句的一般形式如下所示:
if(expression) { StatementA1; StatementA2; . . . } else { StatementB1; StatementB2; . . . } Next_statement;
這里是示例代碼:
#include <stdio.h>
int main() {
int a, b;
a = 5;
b = 8;
if(a>b || a-b<a){
printf("conditional-->a>b || a-b<a \n");
}else{
printf("..another \n");
}
return 0;
}
上面的代碼生成以下結(jié)果。
#include <stdio.h>
#include <limits.h> // For LONG_MAX
int main(void)
{
long test = 0L; // Stores the integer to be checked
printf("Enter an integer less than %ld:", LONG_MAX);
scanf(" %ld", &test);
// Test for odd or even by checking the remainder after dividing by 2
if(test % 2L == 0L)
{
printf("The number %ld is even", test);
// Now check whether half the number is also even
if((test/2L) % 2L == 0L)
{
printf("\nHalf of %ld is also even", test);
printf("\nThat"s interesting isn"t it?\n");
}
}
else
printf("The number %ld is odd\n", test);
return 0;
}
上面的代碼生成以下結(jié)果。
字符值可以表示為整數(shù)或引號之間的鍵盤字符,例如“A”。
此示例使用一些新的邏輯運算符。
程序會將輸入的大寫字母轉(zhuǎn)換為小寫字母:
#include <stdio.h>
int main(void)
{
char letter = 0; // Stores a character
printf("Enter an uppercase letter:"); // Prompt for input
scanf("%c", &letter); // Read a character
// Check whether the input is uppercase
if(letter >= "A") // Is it A or greater?
if(letter <= "Z") // and is it Z or lower?
{ // It is uppercase
letter = letter - "A" + "a"; // Convert from upper- to lowercase
printf("You entered an uppercase %c\n", letter);
}
else // It is not an uppercase letter
printf("A capital letter.\n");
return 0;
}
上面的代碼生成以下結(jié)果。
更多建議: