天人合一之毕设——实践阶段4——棘手的return语句
2018-03-23 16:39
162 查看
其实仔细想一下,我的工作其实有点类似于编译器的某部分。
一个运行时的程序和一个纯文本的区别在于:
1.if else 分支
2.各种循环语句 执行次数是0还是多次
这是之前考虑到的几点,前几天意识到一个问题
比如这种情况:
While( )
{
if() {return 0;}
A = 1;
}
那后面的 A = 1; 语句根本不会执行,这就是return语句带来的影响。
现在代码中已经修复了这个问题。
修复过程中还遇到了一个误区,一开始只简单考虑了return 0/1/null等情况,可以在调用下层函数前直接break。
但是还可能出现 return F1();这种情况,后来设置了return的flag,在最后面才根据flag判断执行
所以要加上的就是:
3.return 语句
现在又临时想到了一些更棘手的情况
4.goto语句 虽然这是不推荐的写法 但是如果考虑完备的话就需要做到
5.循环体里的continue和break语句 这就很复杂了,不能把每一句直接乘以倍数了,有时间了再来修复这个问题
一个运行时的程序和一个纯文本的区别在于:
1.if else 分支
2.各种循环语句 执行次数是0还是多次
这是之前考虑到的几点,前几天意识到一个问题
比如这种情况:
While( )
{
if() {return 0;}
A = 1;
}
那后面的 A = 1; 语句根本不会执行,这就是return语句带来的影响。
现在代码中已经修复了这个问题。
修复过程中还遇到了一个误区,一开始只简单考虑了return 0/1/null等情况,可以在调用下层函数前直接break。
但是还可能出现 return F1();这种情况,后来设置了return的flag,在最后面才根据flag判断执行
所以要加上的就是:
3.return 语句
现在又临时想到了一些更棘手的情况
4.goto语句 虽然这是不推荐的写法 但是如果考虑完备的话就需要做到
5.循环体里的continue和break语句 这就很复杂了,不能把每一句直接乘以倍数了,有时间了再来修复这个问题
相关文章推荐
- 天人合一之毕设——实践阶段7—— 画图
- 天人合一之毕设——准备阶段——1 初识malloc
- 天人合一之毕设——准备阶段——3 HME仿真器
- 天人合一之毕设——准备阶段——4 字典benchmark
- 天人合一之毕设——准备阶段7 我遇到的有关栈的错误
- 天人合一之毕设——准备阶段8 进阶正则表达式
- 天人合一之毕设——准备阶段——Java图建立与遍历
- 天人合一之毕设——准备阶段9 C语言的传参形式
- 天人合一之毕设——准备阶段—— 2 函数调用图(call graph)
- 关于break,continue,goto,return语句区别详解
- 《Visual C# 最佳实践》第二章 控制语句 (一):语句结构
- Java finally语句到底是在return之前还是之后执行?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- Java finally语句到底是在return之前还是之后执行?---第二篇
- 弱弱地问一句~~main函数中的return语句问题
- Java 语言中的 return 语句
- java中的return语句
- [软工视频]实践阶段——编码、测试、维护
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- javascript中break,continue和return语句用法小结