【发布时间】:2017-02-24 05:59:25
【问题描述】:
在for循环中声明一个变量有什么好处和坏处?? 我想改变我的讲师的想法,或者改变我的想法,关于这个: 讲师强迫我使用:
// Declare variables
int i;
...
for(i = 0; boolen expesion; update) // Note i not declared here
我喜欢做:
for(int i = 0; boolean expesion; update) // Note i is declared here
在考试中,按照自己的方式做事会被扣分。我试图通过告诉他来说服他:
- 我没有看到代码按照他的方式完成。
- 它不是那么重要的变量,所以让它在本地有意义。
- 在 for 循环中可能需要使用 long 类型的变量。
他的回答是:“如果这里的循环很少,你不需要重复声明相同的变量”。很难与讲师争论,因为你是来自外国国家的一年级学生。但是 int 并没有占用太多内存,而且 java 有一个垃圾收集器来清理内存..
所以请帮我用一个好的论据说服他或我。
【问题讨论】:
-
不要和他争论。做他让你做的事,考试后做你想做的事。
-
如果有多个循环,这是有益的,尽管考虑到现代机器,这种好处非常小。 GC 也不是问题 - 如果以后不使用变量,JVM 通常足够聪明,可以对变量进行 GC。这个问题/论点就像大象身上的抓痕。
-
也许他曾经用旧的 C 语言编程? (例如:在 C99 之前)那时你必须这样做。虽然不值得争论,但我也更喜欢第二种风格(因为编译器通常能够优化代码)
-
我同意并想添加第二种方式可以添加轻微micro optimization
-
1.讲师永远是对的。 2. 如果讲师不正确,请参阅 1. 考试后忘记在 80' 中编程学习,其中节省的几个字节至关重要。