C Primer Plus 第7章 C控制語句:分支和跳轉 7.1 if語句

這個程序讀入一系列每日的最低溫度(攝氏度),並報告輸入的總數,以及最低溫度在零度如下的天數的百分率。在一個循環裏使用scanf()讀入數值,在每一次循環中增長計數器的值來統計輸入數值的個數。if語句檢測低於零度如下的溫度並單獨統計這些天的數目。express

程序清單7.1  colddays.cui

------------------------------------code

//colddays.c --求出溫度低於零度的天數的百分率
#include <stdio.h>
int main (void)
{
    const int FREEZING = 0;
    float temperature;
    int cold_days = 0;
    int all_days = 0;

    printf("Enter the list of daily low temperatures.\n");
    printf("Use Celsius,and enter q to quit.\n");
    while(scanf("%f",&temperature)==1)
        {
            all_days++;
            if(temperature<FREEZING)
                cold_days++;
        }
    if(all_days!=0)
        printf("%d days total:%.1f%% were below freezing.\n",
                all_days,100.0*(float)cold_days / all_days);
    if(all_days==0)
        printf("No data entered!\n");
    return 0;
}
/*下面是一個運行示例:
Enter the list of daily low temperatures.
Use Celsius,and enter q to quit.
12 5 -2.5 0 6 8 -3 -10 5 10 q
10 days total:30.0% were below freezing.
*/

用float而不是int來聲明temperature,這樣程序就既能接受像8那樣的輸入,也能接受像-2.5這樣的輸入。編譯器

爲了不整數除法,示例程序在計算百分率時使用了類型轉換float。使用類型轉換能夠代表意圖,並保護程序免受不完善編譯器的影響。it

if語句被稱爲分支語句(branching statement)或選擇語句(selection statement),由於它提供了一個交匯點,在此處程序選擇兩條分支中的一條前進。通常形式以下:io

if(expression)編譯

        statementclass

若是expression爲真,就執行statement;不然跳過該語句。和while語句的區別在於在if中,判斷和執行只有一次,而在while循環中,判斷和執行能夠重複屢次。object

注意,即便if中使用了一個複合語句,整個if結構仍將被看做一個簡單的語句。select

相關文章
相關標籤/搜索