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语句比较