C语言中的基本语句
来源:互联网 发布:手机三维立体制图软件 编辑:程序博客网 时间:2024/06/11 05:52
循环语句
1、for循环
先初始化,在比较判断,后执行循环体
2、while循环
先比较判断,在执行循环体
3、do while 循环
先执行循环体,在比较判断
4、goto
可以实现在函数体内进行跳转,但建议尽量不要使用goto语言。
do/while/for三种循环的比较
do while 循环的效率最高,因为do循环结构上非常精简,利用了程序执行时有低地址到高地址的特点,只使用一个条件跳转指令就完成了循环;while循环结构是先比较再循环,因此无法利用执行执行顺序来完成循环,同时,while循环使用了两个跳转指令,因此,while循环的效率比do while 循环的效率低;for循环需要三个跳转指令才能完成循环,所以其效率是最低的。
死循环:
1、while(1);
2、for(;;);
上面两种死循环有什么区别?哪种效率高一点?为什么?
for(;;)死循环里的两个 ; ;代表两个空语句,编译器一般会优化它们,直接进入循环体。
while(1)死循环里的1被看成表达式,没循环一次都要判断常量表达式1是否等于0.
所以,for(;;)死循环的效率比while(1)死循环的效率要高。
选择语句
if----------(判断时 0为假,非0为真)
if-------else-------
if-------else if------else------
。。。
各类型数据与零值得比较
1、bool值与零比较 (0为false/假,非0为true/真)
int flag = 6 ;
if ( flag ) //如果是真
{
//...
}
if ( !flag ) //如果是假
{
//...
}
2、整型变量和零值比较
int num = 10 ;
if ( num == 0)
{
//...
}
3、指针和零值比较
char *p = NULL;
if ( p == NULL)
{
p = "abcd";
}
4、浮点型和零值比较
因为浮点数在内存中的存储方式使得有些浮点数在内存中无法精确的存储,这样就必然有精度的丢失,一旦丢失,就可能使计算不够准确。
设置一个能接收的精度,保证误差在精度范围内就OK了
# define EXP 0.0000001
float f = 0.00001 ;
if (( f > -EXP )&&( f < EXP))
{
printf("f 约等于 0\n") ;
}
推广
# define EXP 0.0000001
float f = 12.00001 ;
if (((f-12) > -EXP )&&( (f-12) < EXP))
{
printf("f 约等于 12\n") ;
}
switch分支语句
switch()
{
case 1:
。。。
break;
case 2:
。。。
break;
case 3:
。。。
break;
default:
。。。
break;
}
说明:case后边只能跟整型或枚举类型(字符类型的值也算是整型值),当想实现分支的情况下才加break。
if-else和switch分支的区别
1、两者的本质区别是if-else语句更适合于区间(范围)的判断,而switch语句跟适合于离散值得判断。
2、所有的switch语句都可以用if-else语句来代替(if-else只需对每个离散值分别做出判断即可),而并不是所有的if-else都可以用switch语句来替换。
3、if-else结构会在条件跳转后紧跟语句块;而switch结构则将所有的条件跳转都放置在一起,通过条件跳转指令,跳转到相应的case语句块中,所有case语句块是连在一起的,这样是为了实现C语法的要求,在case语句块中没有break语句时,可以顺序执行后续case语句块。
break和continue的区别
break是跳出一层循环,而continue是跳出当前这一次的循环。
阅读全文
0 0
- C语言中的基本语句
- C语言基本语句
- C语言之基本语句
- C语言中的for语句
- C语言中的break语句
- C语言中的switch语句
- C/C++语言中的语句
- C语言中的循环语句
- C语言中的基本数据类型
- C语言中的基本数据类型
- C语言中的基本数据类型
- C语言中的基本数据类型
- C语言中的基本数据类型
- C语言中的基本类型
- C语言中的基本类型
- C语言中的基本算法
- c语言中的基本数据类型
- c语言中的基本数据类型
- TypeScript学习笔记之 泛型
- Java-Enumeration总结
- js判断网络
- Caffe的solver文件配置
- 一、关于机器学习的基础知识
- C语言中的基本语句
- Xshell通过密钥登录服务器
- 只用位运算实现整数的加减乘除运算
- Glide在加载网络图片过程中怎么知道加载状态
- 一定要紧跟政治步伐
- 持续集成工具Jenkins的安装和使用
- MVC与WebForm的区别
- 横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用
- 一个简单的敌人自动寻找玩家进行攻击及受到伤害死亡效果实现