在c语言中0表示假,非0表示真。
if的书写规范
1.bool值和零比较:bool类型是在C99标准中才引入的一个语法特点,用的很少,一般情况下用一个整形变量来充当一个bool变量的角色
2.整形和零比较:如果一个变量就是整形 直接用if(整形==0)方式来比较
3.指针和零比较:int *p = NULL; if(p==NULL)
4.浮点型和零比较:因为浮点型在内存中的存储方式使得,有些浮点数在内存中无法精确的存储,这样就必定有精度的丢失。一
一旦丢失就可能计算不够准确。无法使用==直接进行判断两个浮点型是否相当。
此时 我们需要设置一个能接受的精度,保证误差在精度范围内就可以了
4.1判断一个浮点数是否等于0.0:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
#define EXP 0.0000000001
int main() {
float f = 0.000001;
if ((f>-EXP)&&(f<EXP))
{
//此时就证明f使无限接近0的数字
}
system("pause");
return 0;
}
4.2判断一个浮点数是否等于20.0:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
#define EXP 0.0000000001
int main() {
float f = 0.000001;
if (((f-20.0)>-EXP)&&((f-20.0)<EXP))
{
//此时就证明f使无限接近20.0的数字
}
system("pause");
return 0;
}
switch语句:也是一种分支结构常用于多分支的情况
在switch中的break: 在switch语句中,我们没办法实现分支,搭配break才能实现真正的分支
break语句的实际效果就是把语句划分为不同的部分
default子句:卸载任何一个case语句可以出现的位置,当switch表达式的值不匹配所有的case标签的值时这个default后的语句就会执行。每个switch只能有一个default 但是它可以出现在语句列表的任何位置。
goto语句:用于一次跳出多重循环break语句一次只能跳出一层循环
for () {
for () {
for () {
if ()
goto error;
}
}
}
error:
//处理情况
while语句:
while语句中的break和continue
在循环中只要遇到break。就停止后期的所有循环,直接终止循环;用于永久终止循环
countinue用于终止本次循环直接开始下一次循环
for语句:
for语句中的break和continue和while中是一样的
建议:1不可在for循环体内修改循环变量,防止for循环失去控制
2建议for语句的循环控制变量的取值采用“半开半闭区间的写法”
循环语句的效率:
在多重循环中,如果有可能应当最长的循环放在最内层,最短的循环放在最外层
以减少CPU跨切循环层的次数