java 关于条件语句 if

if(name.equals("a"))
tree.expandRow(0);
else if(name.equals("b"))
tree.expandRow(1);
else if(name.equals("c"))
tree.expandRow(2);

当name 属于谁时候,就展开相应的节点。
但是有时候 name 既属于a 也属于c, 但是只展开 a 节点。。
我想要 a和c都展开。

每次if else if 都内置了break ? 我用switch的话,不添加break,每次只展开第一个节点。

需要怎么写呢?
我一开始就是用的多个 并行的if

第1个回答  2013-02-19
if,else条件语句你没理解,如果符合if的条件,else是不执行的。你可以这样写if(name.equals("a")&&name.equels("b")){......}懂吧.
switch,case条件语句的话里面必须是整数表达式,如果你第一个条件不加break会执行第二个条件,但是如果你第二个条件加break了还是会跳出和,按后面跟着b你可以,但是如果a后面跟着c,你肯定不行.switch,case语句肯定要break的

如果你的意思是名字name中包含a或者c的话就不能用equels了,应该用正则表达式去匹配
第2个回答  推荐于2016-10-31
把所有的else都去掉
if(){}
if(){}
if(){}

这样每个判断都会走的, 你用else, 只会走一个追问

没用

本回答被提问者和网友采纳
第3个回答  2013-02-19
把所有else去掉应该是对的。
当时name.equals("a") && name.equals("c")应该是不存在的,你可以debug下,在你说的name既属于a也属于c的时候看下name到底是什么。
equals是判断对象是否相等的。
第4个回答  2013-02-19
你用的equals,表示两个对象相等(物理地址不相等),既然是这样,怎么可能既equals("a")又equals("c")呢?按你的说法,有时候 name 既属于a 也属于c,你想要 a和c都展开,那为什么又要用equals方法呢?不知道是你描述的不清楚,还是我理解的有问题,equals是判断两个对象是否相等,不是判断某个对象是否属于某个范围,个人觉得楼主思路有点问题。追问

我思路是有问题了 = =

第5个回答  2013-02-19
if else 是在你满足if时就不去判断else后面的了,所以当你满足a时,c就不判断了,你可以都用if,不要else了追问

我一开始就是都用的if。 没用, 还是展开了a , 没有展开c

追答

能把具体的代码贴出来吗,你也可以把name值输出来,看看name值是否准确,equals是值相等,看你name到底是什么的。你既要显示a的又要显示c的,你可以给name赋新值,如“ac”,然后equals这个,在里面显示tree.expandRow(0);tree.expandRow(2);

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网