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.1
0.09999999999999997779553950749686919152736663818359
0.10000000000000000555111512312578270211815834045410
总结:浮点数存在精度丢失,是不能直接比较的。
我们可以通过C语言提供的最小精度,达成我们比较的目的:
例:
#include #include //提供最小精度值:DBL_EPSILON int 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; }
写在最后:
以上就是本篇文章的内容了,感谢你的阅读。
如果喜欢本文的话,欢迎点赞和评论,写下你的见解。
如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。
之后我还会输出更多高质量内容,欢迎收看。