C语言C++编程学习之控制语句详解

今天小编和大家分享一下C语言C++编程学习中分支和跳转的相关知识点,需要的小伙伴可以参考一下

关键字:if , else , switch , continue , break , case , default , goto

运算符:&&、||、?:

函数:getcher( ) , putcher( ) , ctype.h系列

如何使用if和if else语句,如何嵌套它们

在更复杂的测试表达式中用逻辑运算符组合关系表达式

C的条件运算符

switch语句

break、continue和goto语句

使用C的字符I/O函数:getcher( ) 和 putcher( )

 ctype.h头文件提供的字符分析函数系列

if语句

在最开始,书上的引入程序是一个通过输入一些天数的温度,来计算在这些天中,0度以下的寒冷天气战的百分比

[cpp]view plaincopy

/*colddays.c -- 找出0度以下的天数占总天数的百分比*/  

#include   

int main(void)  

{  

const int FOREEEZING = 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 < FOREEEZING){  

            cold_days++;  

        }  

    }  

if (all_days != 0){  

printf("%d days total: %.lf%% were below freezing.\n",  

all_days, 100.0 * (float) cold_days / all_days);  

    }  

if (all_days == 0){  

printf("No date 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% were below freezing.

程序分析:

程序中while循环的测试条件利用scanf()的返回值来结束循环,因为scanf()在读取到非数字是会返回0 。temperature的类型是float类型而不是int类型,这样扩大了temperature的取值范围,不仅仅局限于整数。

小编推荐一个学C语言/C++的学习裙【 六二七,零一二,四六四 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

while循环中首次出现了if语句:

[cpp]view plaincopy

if (temperature < FOREEEZING){  

    cold_days++;  

}  

if语句只是计算机,如果刚刚读取的temperature值小于0,就执行cold_days++,即寒冷天数加一天;如果不,就跳过cold_days++,让while循环继续读取下一个数。

while循环之后,又通过两个if语句来控制程序的输出。如果上面输入了数据,就打印前一个if语句中的结果;反之告诉执行者没有输入数据(当然这里其实并不需要使用两个if语句,后面会有介绍)。在printf()语句中,把百分比强制转换为float类型,其实并没有必要加上强制转换,因为100.0*cold_days求值时已经被转换成了float类型,这么做是为了让程序能适应各种编译器。

if语句被称为分支语句,或者选择语句,因为它相当于一个交叉点,程序又在两个分支中选择一条执行,if语句的通用形式如下:

if(expression){

    statement

}

如果对表达式(expression)求值为真,就执行语句(statement)否则就不执行。这似乎与while语句很相似,但是while语句可以执行多次,而if语句只会执行一次。

if else 语句

上面的if语句,可让程序选择执行一条语句或者跳过,还有一种语句,即if else语句,可以让程序在两条语句中进行选择。

[cpp]view plaincopy

if (all_days != 0){  

printf("%d days total: %.lf%% were below freezing.\n",  

all_days, 100.0 * (float) cold_days / all_days);  

}  

if (all_days == 0){  

printf("No date entered!\n");  

}  

现在可以将这段用if else语句来写

[cpp]view plaincopy

if (all_days != 0){  

printf("%d days total: %.lf%% were below freezing.\n",  

all_days, 100.0 * (float) cold_days / all_days);  

}  

else{  

printf("No date entered!\n");  

}   

这里的else相当于原来的if (all_days == 0)。

if else语句的通用格式如下:

if(expression){

    statement1

}

else{

statement2

}

如果对表达式(expression)求值为真,就执行statement1,否则就执行statement2 。这里的语句不一定只是一条语句,也可以是很多条,需要用大括号{}将其包括起来,形成一个块,当然这也算是一条语句。如果有多条语句而没有大括号,就会出错。

你可能感兴趣的:(C语言C++编程学习之控制语句详解)