c primer plus(第五版)读书笔计 第七章(1)

 

If 语句
       //7-1.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;%.f%% were below freexing.\n",
              all_days,100.0 * (float)cold_days / all_days);
       if (all_days == 0)
              printf("No data entered!\n");
       return 0 ;
}
 
 
While 循环的判断条件利用 scanf ()的返回值在scanf ()遇到非数字输入的时候终止循环。
if (temperature < FREEZING)
       cold_days ++;
这是while中的新语句:该if语名指示计算机,如果刚读入的值小于0那么cold_days 加1如果刚读入的值不小于0那么就跳过cold_days语句,while循环继续读取下一个输入的值
If语句被称为分支语句或选择语句,因为它提供了一个交汇点,在此处程序需要选择两条分支中的一条前进。一般形式:
                            Inf ( expression)
                                   Statement
如果expression求的值为真(非零)就是执行statement,否则跳过该语句。和while语句一样statement语句可以是简单语句也可是用花括号括起来的复合语句。但是要注意的是:即使if 中使用了一个复合语句,整个if结构仍将被看作一个简单语句。这种结构和while相似但是出别在于if语句中的判断和执行(如果有可能的话)仅有一次,而while循环中判断和执行可以重复多次。
通常expression是一个关系表达式。如果expression的值为真,就执行语句,否则跳过语句。更一般的可以是任务表达式,表达式的值的0被视为假。
 
简单形式的if语句使程序可以选择执行一条语句(可能是复合语句)或忽略它,C还可通过使用if eles形式在两个语句中间做出选择。一般形式如下:
                     Inf ( expression)
                                   Statement1
                     Eles
                                   Statement2
如果expression为真(非零)就执行Statement1;如果expression为假就执行Statement2; Statement1, Statement2可以是简单语句也可以是复合语句;.但是在if与eles 之间有多条语句必须使用花括号创建一个代码块。因为编译器期望if和eles之间只有一条语句。
If语句和if eles语句比较

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章