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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Student {
        private String name;
        private int age;

        public void setName(String name){
                this.name = name;
        }
        public String getName(){
                return name;
        }
        public void setAge(int stuage){
                if (stuage < 0 && stuage >= 120) {
                        System.out.println("输入的年龄有错误,请重新输入:");
                }else   {
                        age = stuage;
                                }
        }
        public int getAge(){
                return age;
        }
        public void introduce(){
                System.out.println("我的名字叫:" + name + ",我的年龄是:" + age);
        }
}
class a33 {
        public static void main(String[] args){
        Student st = new Student();
        st.setName("zhangsan");
        st.setAge(-16);
        st.introduce();
        }
}

setAge里面有个年龄的判断语句,if后面跟的是条件,为什么这么运行条件不运行,而是直接把-16的值赋给了age并输出。是不是形式参数不能用作这种的条件判断?或者是什么其他原因,请大神帮我解答,谢谢啦~

4 个回复

倒序浏览
if (stuage < 0 && stuage >= 120)
回复 使用道具 举报
楼上那条语句&&改成||,不然这个条件就是false,永远不会执行,哪有什么输入是既<0又>=120的?
回复 使用道具 举报 1 0
xiaofushen 发表于 2016-3-20 21:22
楼上那条语句&&改成||,不然这个条件就是false,永远不会执行,哪有什么输入是既=120的? ...

感谢啊~  只想到了&&是一个为假则不执行,忘记了后面有执行语句的~谢啦~
回复 使用道具 举报
Laopozini123 发表于 2016-3-20 21:26
感谢啊~  只想到了&&是一个为假则不执行,忘记了后面有执行语句的~谢啦~

不客气.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马