A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 昨夜的雨 中级黑马   /  2015-10-5 18:53  /  464 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

能并列用两个if不,不是嵌套,不是else if。就是并列使用。
if ("赵六".equals(p.getName())) {
                                System.out.println("存在赵六,把他删除!");
                                list.remove(p);
                        }
                        if ("田七".equals(p.getName())) {
                                System.out.println("存在田七,把他更换为孙七");
                                Person p9 = new Person("孙七", 85);
                                list.remove(p);
                                list.add(p9);
为什么第一个成立了就不会执行第二句,求解啊

3 个回复

倒序浏览
第二个if可以看做else啊
只有第一个条件不成立才会执行第二个
回复 使用道具 举报
都会执行,你的判断条件没满足
Scanner sc = new Scanner(System.in);
                int a = sc.nextInt();
                if (a == 1) {
                        System.out.println("哈哈");
                }
                if (a == 1) {
                        System.out.println("呵呵");
                }
这段代码你输入1,哈哈和呵呵都会打出来
回复 使用道具 举报
P对象的name属性只会有一个值,不可能即使赵六,又是田七,但是第一个成立之后 ,第二个判断语句“ if ("田七".equals(p.getName()))”还是会执行的 只是大括号内的语句不会执行,

建议这样写
if ("赵六".equals(p.getName())) {
        System.out.println("存在赵六,把他删除!");
         list.remove(p);
}else   if ("田七".equals(p.getName())) {
        System.out.println("存在田七,把他更换为孙七");
        list.remove(p);
        list.add(new Person("孙七", 85));
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马