美文网首页C语言C++编程学习C语言
C语言C++编程学习之控制语句详解

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

作者: C语言学习 | 来源:发表于2018-05-06 14:43 被阅读1次

    今天小编和大家分享一下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++编程学习之控制语句详解

        本文链接:https://www.haomeiwen.com/subject/zcrurftx.html