今天小编和大家分享一下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++游戏编程,有什么方法,这个问题,想必大家都已经心中有数了,打算深入了解这个行业的朋友,可以加下小编上面的C/C++编程学习企鹅裙,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的C/C++资料和0基础入门教程,欢迎初学和进阶中的小伙伴。
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 。这里的语句不一定只是一条语句,也可以是很多条,需要用大括号{}将其包括起来,形成一个块,当然这也算是一条语句。如果有多条语句而没有大括号,就会出错。