目录

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;}

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。