使用goto实现循环,跳转语句
2014-08-31 16:23
429 查看
/*计算从0-10的和*/
do-while语句:
/*****************do while版***************/
do while 版的 goto语句实现:
/*****************do while版***************/
while版本:
/*****************while版***************/
while版goto语句实现:
/*****************while版***************/
for语言实现:
/*****************for版***************/
goto版的for语句:
/*****************for版***************/
使用goto语句加深对break和continue的理解。
计算0——100内偶数的和,break版:
*****************理解break***************/
goto 版:
*****************理解break***************/
下面 该理解break了。
使用上面同样的例子,不过把continue换成break。
goto版:
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语句了。
相关文章推荐
- 使用goto语句构成的循环求1~100之间的所有奇数之和,即求解表达式1+3+5+...+99之和。
- Objective-C学习笔记(八)——高级跳转语句goto使用方法
- goto语句跳转到指定循环层次
- 求1+2+…+n,要求不能使用乘除法、for、while、if、else、s witch、case 等关键字以及条件判断语句(A?B:C)和不用循环/goto/递归输出1~100的10种写法
- golang跳转语句goto,break,continue的使用及区别
- 剑指Offer——不使用循环,判断,选择语句实现1+2+3....+n
- stackoverflow | C/C++ | 如何不使用循环和判断语句实现“打印从1到100之间的数字”
- 使用if和goto语句构造循环
- 使用for、while 以及repeat-break实现循环语句
- 使用if和goto语句构造循环
- Java 语句标签实现goto跳转
- 46 - 不使用 乘除、循环和判断 语句实现 1+...+n
- 使用ViewPager实现左右循环滑动及滑动跳转
- 跳转语句的使用(break,continue,goto,return)
- 在Lua中实现汇编中的跳转语句Goto
- Go 循环跳转语句使用标签的作用之一
- (Sql Server高级技巧)使用SQL语句实现备份与还原
- 如何使用位运算实现循环移位?
- [引]C#参考 跳转语句(break,continue,goto,return,throw)