当前位置: 代码迷 >> Java Web开发 >> 请教: IF(){}ELSE{}的问题
  详细解决方案

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

热度:348   发布时间:2008-02-04 13:59:43.0
请教: IF(){}ELSE{}的问题
本人对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 =???

不知道为什么???
搜索更多相关主题的帖子: ELSE  two  TreeNodeBase  false  

----------------解决方案--------------------------------------------------------
思路不清楚吧?  要测试这个知识点可以简单一点实验呀
----------------解决方案--------------------------------------------------------
如果是在方法内声明的变量,则必须进行变量的初始化,即赋初始值。
----------------解决方案--------------------------------------------------------
呵呵,我是新手我说说看法行不?不知道我理解得对不?

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

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