注册 登录
编程论坛 J2EE论坛

请教: IF(){}ELSE{}的问题

yanhui007 发布于 2008-02-04 13:59, 1119 次点击
本人对IF()}ELSE IF{}有一问题不清楚想请高手解释:
TreeNodeBase two;
if (organization2.getType().equalsIgnoreCase("department")) {
two = new TreeNodeBase("rootNode-link",
organization2.getName(), false);
} else if (organization2.getType().equalsIgnoreCase("subbranch")) {
two = new TreeNodeBase("rootNode", organization2.getName(), false);

} else {
two = new TreeNodeBase("rootNode-link2",organization2.getName(), false);
        }
two.setIdentifier(organization2.getOid().toString());

象上面的代码: TreeNodeBase two ;这样定义就可以了

但是如果条件变成
if (organization2.getType().equalsIgnoreCase("department")) {
two = new TreeNodeBase("rootNode-link",
organization2.getName(), false);
} else if (organization2.getType().equalsIgnoreCase("subbranch")) {
two = new TreeNodeBase("rootNode", organization2.getName(), false);

}

必须要初始化TreeNodeBase two =???

不知道为什么???
5 回复
#2
想你的天空2008-02-08 06:46
思路不清楚吧?  要测试这个知识点可以简单一点实验呀
#3
farain2008-02-10 16:23
如果是在方法内声明的变量,则必须进行变量的初始化,即赋初始值。
#4
huangl892008-02-13 09:23
呵呵,我是新手我说说看法行不?不知道我理解得对不?

TreeNodeBase two;这名已经说明了two 是 TreeNodeBase类了;
所以你只要NEW 一个对象出来就可以了;

但是下部份的语句,two什么都不是,所以要先初始化;
#5
huwangvs2008-02-14 10:21
局部变量必须要赋值。这个肯定都知道。
就是这个原因。
楼主的第一个程序,无论发生什么情况。two都能被赋值。
而第二段代码,如果一二两个条件都不满足的话,two就没有值了。这是不允许的,所以就要先给two初始化了。。。
#6
hwoarangzk2008-02-14 10:34
LS正解,if else必须要列出所有可能的情况,就是说有if必须要有else才行,不然没有值
1