使用goto实现循环,跳转语句
来源:互联网 发布:知乎何炅和撒贝宁关系 编辑:程序博客网 时间:2024/05/17 06:55
/*计算从0-10的和*/
do-while语句:
/*****************do while版***************/
int sum = 0; int i = 0; do { sum += i; i++; } while(i <= 10);
do while 版的 goto语句实现:
int sum = 0; int i = 0;loop: sum += i; i++; if(i <= 10) goto loop;done:
/*****************do while版***************/
while版本:
/*****************while版***************/
int sum = 0; int i = 0; while(i <= 10) { sum += i; i++; }
while版goto语句实现:
int sum = 0; int i = 0; if(!(i <= 10)) goto done;loop: sum += i; i++; if(i <= 10) goto loop;done:
/*****************while版***************/
for语言实现:
/*****************for版***************/
int sum = 0; for(int i = 0; i <= 10;i++) sum += i;
goto版的for语句:
int sum = 0; int i = 0; if(!(i <= 10)) goto done; loop: sum += i; i++; if(i <= 10) goto loop; done:
/*****************for版***************/
使用goto语句加深对break和continue的理解。
计算0——100内偶数的和,break版:
*****************理解break***************/
int sum = 0; for(int i = 0 ;i <= 100; i++) { if(i % 2 == 1) continue; sum += i; }
goto 版:
int i = 0; int sum = 0; if(!(i <= 100)) goto done; loop: if(!(i % 2 == 1)) goto lab2;/*注意跳转的条件,以及跳转到的地方,可以看出continue只是终止了本层循环*/ lab1: sum += i; lab2: i++; if(i <= 100) goto loop; done:
*****************理解break***************/
下面 该理解break了。
使用上面同样的例子,不过把continue换成break。
int sum = 0; for(int i = 0;i < 100;i++) { if(i % 2 == 0) <span style="white-space:pre"></span>break; sum+=i; }
goto版:
int i = 0; int sum = 0; if(!(i <= 100)) goto done; loop: if(!(i % 2 == 1)) /*这里可以看出直接跳出,终止循环*/ goto done; lab1: sum += i; lab2: i++; if(i <= 100) goto loop; done:通过这两个例子,应该很清楚的明白break和continue之间的区别了,这与编译器生成汇编指令的逻辑是相同的,其实C中的goto就是汇编当中的jmp语句了。
0 0
- 使用goto实现循环,跳转语句
- goto语句跳转到指定循环层次
- 使用if和goto语句构造循环
- 使用if和goto语句构造循环
- 在Lua中实现汇编中的跳转语句Goto
- 跳转语句的使用(break,continue,goto,return)
- golang跳转语句goto,break,continue的使用及区别
- goto语句及goto构成循环
- C++跳转语句之goto
- C#中的goto跳转语句
- goto语句的使用
- C#使用goto语句
- 正确使用goto语句
- C语言goto语句以及用goto语句构成循环
- C语言goto语句以及用goto语句构成循环
- 035.Goto Loop 跳转式循环
- 035.Goto Loop 跳转式循环
- 跳转语句:goto;break;continue;return
- Android 快速开发系列 打造万能的ListView GridView 适配器
- zedboard上移植OPENCV库
- Spring事务的架构 .
- 测试用例实例--常见功能测试点
- poj 2251(广搜求两点之间的距离)
- 使用goto实现循环,跳转语句
- 表达式求值 NYOJ
- Word Ladder 宽搜超时 新方法未做!!!!!
- elasticsearch-查询基础篇
- 【C++ Primer每日一刷之八】之九 创建动态数组
- oracle 查看用户所在的表空间
- 花生壳域名解析、nat123域名解析、dnspod域名解析、阿里云域名解析等对比
- 搭建基于 STM32 和 rt-thread 的开发平台
- direct path read和diect path write