目录
if else 组合
if else 的基本用法
注释
深入理解bool
float(double)与浮点数的比较
写在最后:
if else 组合
if else 的基本用法
#include <stdio.h>
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 <stdio.h>
//
//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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
#include <stdbool.h>
int main()
{
bool ret = false;
ret = true;
printf("%d\n", sizeof(ret)); //vs2019 和 Linux中都是1
//也就是占用了一个字节
return 0;
}
我们通过查看源码深入了解一下bool。
在包含头文件<stdbool.h>后,就能使用bool,
false 表示假。
true 表示真。
float(double)与浮点数的比较
例:
#include <stdio.h>
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 <stdio.h>
#include <float.h>//提供最小精度值: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;
}
写在最后:
以上就是本篇文章的内容了,感谢你的阅读。
如果喜欢本文的话,欢迎点赞和评论,写下你的见解。
如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。
之后我还会输出更多高质量内容,欢迎收看。