目录
if else 组合
if else 的基本用法
注释
深入理解bool
float(double)与浮点数的比较
写在最后:
if else 组合
if else 的基本用法
#include int main(){int flag = 1;if (flag == 1){printf("flag = %d\n", flag);}else if (flag == 2){printf("flag = %d\n", flag);}else{printf("flag = %d\n", flag);}return 0;}
输出:
输出:flag = 1
当flag等于1的时候,打印的就是flag = 1;
当flag等于2的时候,打印的就是flag = 2;
当flag不等于1和2的时候,打印的就是flag 对应的值;
这就是if else 语句。
注释
我们平时用的注释方法:
//#include ////int main()//{//int flag = 1;//if (flag == 1)//{//printf("flag = %d", flag);//}//else if (flag == 2)//{//printf("flag = %d", flag);//}//else//{//printf("flag = %d", flag);//}//return 0;//}
又或者是:
/*#include int main(){int flag = 1;if (flag == 1){printf("flag = %d", flag);}else if (flag == 2){printf("flag = %d", flag);}else{printf("flag = %d", flag);}return 0;}*/
其实,用if 语句也能巧妙的注释:
#include int main(){if (0){int flag = 1;if (flag == 1){printf("flag = %d", flag);}else if (flag == 2){printf("flag = %d", flag);}else{printf("flag = %d", flag);}}return 0;}
当然,这种方式并不推荐。(容易出问题)
深入理解bool
C语言有没有bool类型?
c99之前,主要是c90没有,但是c99引入了_Bool类型。
_Bool是一个类型,在新增头文件stdbool.h中,为了保证C/C++兼容性,被重新用宏写成了 bool。
例:
#include #include int main(){bool ret = false;ret = true;printf("%d\n", sizeof(ret)); //vs2019 和 Linux中都是1 //也就是占用了一个字节return 0;}
我们通过查看源码深入了解一下bool。
在包含头文件后,就能使用bool,
false 表示假。
true 表示真。
float(double)与浮点数的比较
例:
#include int main(){double x = 1.0;double y = 0.1;if ((x - 0.9) == 0.1){printf("(x - 0.9) = 0.1\n");}else{printf("(x - 0.9) != 0.1\n");printf("%.50lf\n", x - 0.9);printf("%.50lf\n", 0.1);}return 0;}
输出:
输出:(x - 0.9) != 0.10.099999999999999977795539507496869191527366638183590.10000000000000000555111512312578270211815834045410
总结:浮点数存在精度丢失,是不能直接比较的。
我们可以通过C语言提供的最小精度,达成我们比较的目的:
例:
#include #include //提供最小精度值:DBL_EPSILONint main(){double x = 1.0;double y = 0.1;//if ((x - 0.9) == y)if ((x - 0.9 - y) < DBL_EPSILON)//如果成立,则(x - 0.9) = y{printf("(x - 0.9) = y\n");}else{printf("(x - 0.9) != 0.1\n");printf("%.50lf\n", x - 0.9);printf("%.50lf\n", 0.1);}return 0;}
写在最后:
以上就是本篇文章的内容了,感谢你的阅读。
如果喜欢本文的话,欢迎点赞和评论,写下你的见解。
如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。
之后我还会输出更多高质量内容,欢迎收看。