【向ZangXT提问】循环中使用的局部变量,一般是在循环内部声明?还是在循环外部声明?该怎么处理
【向ZangXT提问】循环中使用的局部变量,一般是在循环内部声明?还是在循环外部声明?
例如下面这个打印一串数字的程序,需要在每个偶数后面标记一个星号,一种方法是把表示星号的变量mark声明在循环内部:
另一种方法是,声明在循环外部:
这两种方法,哪一种比较规范呢?或者说哪一种效率较高?
------解决方案--------------------
应该放在循环里面,尽量让局部变量的作用域小一些。仅仅在循环里面用的就尽量不要放到外面,在这个例子中是没有效率的差别的 。
------解决方案--------------------
如果是我,绝对放在外面,至少可是少生成许多的局部变量。
虽然你这里用的是String的不可修改类。
------解决方案--------------------
------解决方案--------------------
汗 点了一下写了半天的东西没了 o(>_<)o ~~
简单的说下
写在外部大家都明白
写在内部的时候
第一次循环
String mark;
编译器就建立了一个局部变量mark
又一次循环开始
编译器发现String mark;
又有一个局部变量mark
编译器就直接把这个局部变量mark拿来用
例如下面这个打印一串数字的程序,需要在每个偶数后面标记一个星号,一种方法是把表示星号的变量mark声明在循环内部:
- Java code
class Test { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { String mark = ""; if (i % 2 == 0) mark = "*"; System.out.println(i + mark); } } }
另一种方法是,声明在循环外部:
- Java code
class Test { public static void main(String[] args) { String mark; for (int i = 1; i <= 10; i++) { mark = ""; if (i % 2 == 0) mark = "*"; System.out.println(i + mark); } } }
这两种方法,哪一种比较规范呢?或者说哪一种效率较高?
------解决方案--------------------
应该放在循环里面,尽量让局部变量的作用域小一些。仅仅在循环里面用的就尽量不要放到外面,在这个例子中是没有效率的差别的 。
------解决方案--------------------
如果是我,绝对放在外面,至少可是少生成许多的局部变量。
虽然你这里用的是String的不可修改类。
------解决方案--------------------
------解决方案--------------------
汗 点了一下写了半天的东西没了 o(>_<)o ~~
简单的说下
写在外部大家都明白
写在内部的时候
第一次循环
String mark;
编译器就建立了一个局部变量mark
又一次循环开始
编译器发现String mark;
又有一个局部变量mark
编译器就直接把这个局部变量mark拿来用