循环控制语句for while do-while if switch
来源:互联网 发布:mysql如何删除主键 编辑:程序博客网 时间:2024/06/02 21:22
1:For 语句循环控制
L3执行完后直接执行L2的代码
int main(){ int a=0; for(int i=0;i<100;i=i+2){ a=a+10;}}/************************/.file"b01.cpp".text.globlmain.typemain, @functionmain:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq%rsp, %rbp.cfi_def_cfa_register 6movl$0, -4(%rbp) //a addressmovl$0, -8(%rbp) //i addressjmp.L2.L3:addl$10, -4(%rbp) //a=a+10addl$2, -8(%rbp) //i=i+2.L2:cmpl$99, -8(%rbp) //i-99jle.L3movl$0, %eaxpopq%rbp.cfi_def_cfa 7, 8ret.cfi_endproc.LFE0:.sizemain, .-main.ident"GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-11)".section.note.GNU-stack,"",@progbits
2:while 语句
int main(){ int a=0; while(a<2){ a++;}}//**************************.file"b01.cpp".text.globlmain.typemain, @functionmain:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq%rsp, %rbp.cfi_def_cfa_register 6movl$0, -4(%rbp) //a=0jmp.L2.L3:addl$1, -4(%rbp) //a++.L2:cmpl$1, -4(%rbp) //a-1jle.L3movl$0, %eaxpopq%rbp.cfi_def_cfa 7, 8ret.cfi_endproc.LFE0:.sizemain, .-main.ident"GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-11)".section.note.GNU-stack,"",@progbits
3: Do-while
先执行后判断
int main(){ int a=20; do{ a++;}while(a>100);}//**********************.file"b01.cpp".text.globlmain.typemain, @functionmain:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq%rsp, %rbp.cfi_def_cfa_register 6movl$20, -4(%rbp) //a=20.L2:addl$1, -4(%rbp) //a++cmpl$100, -4(%rbp) // a-100jg.L2 大于 jg跳转movl$0, %eaxpopq%rbp.cfi_def_cfa 7, 8ret.cfi_endproc.LFE0:.sizemain, .-main.ident"GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-11)".section.note.GNU-stack,"",@progbits
4:IF语句
int main(){ int a;a=20;if(a<30){a=66;}else if(a==30){a=99;}else{ a=89;}}//**********************.file"b01.cpp".text.globlmain.typemain, @functionmain:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq%rsp, %rbp.cfi_def_cfa_register 6movl$20, -4(%rbp) //a=20cmpl$29, -4(%rbp) //a-29jg.L2 //a-29>0 跳L2movl$66, -4(%rbp) //a<=29 a=66jmp.L3.L2:cmpl$30, -4(%rbp) //a-30 jne.L4 ZF标志位为0时跳转 zf=1时a==30movl$99, -4(%rbp) jmp.L3.L4:movl$89, -4(%rbp) //a=89;.L3:movl$0, %eax //return 0popq%rbp.cfi_def_cfa 7, 8ret.cfi_endproc.LFE0:.sizemain, .-main.ident"GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-11)".section.note.GNU-stack,"",@progbits
5:swith
int main(){ int a;a=20;int b;switch(a){case 100: b=100; break;case 20: b=20;break;default : b=0;}}//*********************.file"b01.cpp".text.globlmain.typemain, @functionmain:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq%rsp, %rbp.cfi_def_cfa_register 6movl$20, -4(%rbp) //a=20movl-4(%rbp), %eax //eax=20cmpl$20, %eax //20-20je.L3 //相等jmp .L3cmpl$100, %eax //20-100jne.L7 // 不等 jmp .L7movl$100, -8(%rbp) //相等 b=100jmp.L5.L3:movl$20, -8(%rbp) //b=20jmp.L5 //跳出.L7:movl$0, -8(%rbp) //b=0.L5:movl$0, %eaxpopq%rbp.cfi_def_cfa 7, 8ret.cfi_endproc.LFE0:.sizemain, .-main.ident"GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-11)".section.note.GNU-stack,"",@progbits
6:continue break
continue 结束当下,继续下一个循环
break 结束循环
int main(){ int a;a=20;int b;for(int i=0;i<100;i++){if(a==50){b=50;continue;}if(a==60){b=60;break;}a++;}}//**************************.file"b01.cpp".text.globlmain.typemain, @functionmain:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq%rsp, %rbp.cfi_def_cfa_register 6movl$20, -4(%rbp) //a=20movl$0, -8(%rbp) //i=0;jmp.L2.L7:cmpl$50, -4(%rbp) //a-50jne.L3 //a!=50 jmp .L3movl$50, -12(%rbp) //if a==50 b=50jmp.L4 //continue.L3:cmpl$60, -4(%rbp)jne.L5movl$60, -12(%rbp)jmp.L6 //break.L5:addl$1, -4(%rbp) //a++.L4:addl$1, -8(%rbp) //i++.L2:cmpl$99, -8(%rbp) //i-99jle.L7 //i<=99 jmp .L7.L6:movl$0, %eaxpopq%rbp.cfi_def_cfa 7, 8ret.cfi_endproc.LFE0:.sizemain, .-main.ident"GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-11)".section.note.GNU-stack,"",@progbits
阅读全文
0 0
- 循环控制语句for while do-while if switch
- 控制流程语句if、switch、while、do-while、for
- 循环控制 for while do while switch
- 分支语句 循环语句 if,switch,do,while,for分析
- JS:1.2控制语句(if,if else,for,switch,while,do while)
- if和switch语句、循环语句while和do……while、for
- 【Swift】学习笔记(五)——控制语句(if,switch,for-in,for,while,do-while)
- if switch 具体用法 循环 while do while for
- 程序流程控制 if switch while do while for
- 分支语句(if,switch case)、循环(for,while,do while)、continue、break、随机数
- C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)
- java(4)------流程控制语句(if,switch,for,while,do-while)
- awk 控制语句(if for do while)
- 8 流程控制(switch循环)for、while、do...while
- switch 语句还有 循环结构 while 、do-while、 for
- java程序流程控制,if语句,switch语句,while语句,do while语句,for 语句,break关键字,continue关键字
- swift控制语句,for,while,repeat-while,if,switch
- 笔记:循环(for, if, do...while, break, switch)
- CSS背景、尺寸、盒子模型
- 微信服务号开发时获取授权遇到的问题
- 图论题目
- eclipse项目导入到AndroidStudioc报错
- 理解HTTP协议
- 循环控制语句for while do-while if switch
- 分布式消息队列RocketMQ与Kafka的18项差异之“拨乱反正”
- ApiCloud开发的注意事项
- Java通过JNI调用本地C/C++程序
- VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下
- 分布式消息队列RocketMQ与Kafka的18项差异之“拨乱反正“之2
- 数据提交工具接口开发
- zxing生成二维码
- Memcached启动报错