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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Johnny_Hu 中级黑马   /  2015-3-7 15:07  /  1303 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.itheima;

  2. public class Objects {
  3.         public static void main(String[] args){
  4.                 Car c = new Car();
  5.                 c.setAge(-20);
  6.         }
  7. }
  8. class Car{
  9.         private String name="胡平燕";
  10.         private char sex='男';
  11.         private int age= 26;
  12.         public String getName() {
  13.                 return name;
  14.         }
  15.         public void setName(String name) {
  16.                 this.name = name;
  17.         }
  18.         public char getSex() {
  19.                 return sex;
  20.         }
  21.         public void setSex(char sex) {
  22.                 this.sex = sex;
  23.         }
  24.         public int getAge() {
  25.                 return age;
  26.         }
  27.         void demo(){
  28.                 System.out.print("age="+age);
  29.         }
  30.         public void setAge(int age) {
  31.                 if(age>0 && age<130)
  32.                 {
  33.                         this.age = age;
  34.                         demo();
  35.                        
  36.                 }
  37.                 else
  38.                 {
  39.                         System.out.print("您输入的年龄有误");
  40.                 }
  41.                
  42.         }               
  43. }
  44. /*
  45. if(age>0 && age<130)
  46.                 {
  47.                         System.out.print("您输入的年龄有误");
  48.                 }
  49.                 else
  50.                 {
  51.                         this.age = age;
  52.                         demo();
  53.                 }
  54. 为什么我这样写年龄是-20岁也输出呢  
  55. 我不都是一样的判断吗  如果年龄小于0就输出 “年龄输入有误”
  56. 否则就输出正确的年龄
  57. */

复制代码


谁能说说有什么区别

评分

参与人数 2技术分 +2 收起 理由
lwj123 + 1
万合天宜 + 1

查看全部评分

8 个回复

倒序浏览
  1. if(age<0 && age>130)
  2. {
  3.       System.out.print("您输入的年龄有误");
  4. }
  5. else
  6. {
  7.       this.age = age;
  8.       demo();
  9. }
复制代码

是这样的 上面要提的问题写错了
回复 使用道具 举报
  1. if(age<0 || age>130)
  2. {
  3.       System.out.print("您输入的年龄有误");
  4. }
  5. else
  6. {
  7.       this.age = age;
  8.       demo();
  9. }
复制代码


应该是这样的!应该是判断   大于130或小于的情况输出 “年龄输入有误”
回复 使用道具 举报
两种判断的不一样,  if(age>0 && age<130)
            {
                   this.age = age;
                    demo();      
            }
            else
            {
                    System.out.print("您输入的年龄有误")  ;
            }

这种判断思路是当两个条件都满足时,才输出
  if(age<0 || age>130)
            {
                      System.out.print("您输入的年龄有误")  ;
            }
            else
            {
                      this.age = age;
                    demo();
            }

这种应该是两个条件只要满足一个,就提示"输入年龄有误",希望能帮到你
回复 使用道具 举报
本帖最后由 z47057554 于 2015-3-8 05:39 编辑

不存在既小于0,又大于130的数,故
age<0 && age>130
始终为假,那么
System.out.print("您输入的年龄有误");
永远不会执行
else只要是个数,它就会执行


回复 使用道具 举报
z47057554 发表于 2015-3-8 05:31
不存在既小于0,又大于130的数,故
age130
始终为假,那么

:)太谢谢了  对 我写的那个是两边都必须要满足才能执行的
回复 使用道具 举报
shewim 发表于 2015-3-7 15:51
应该是这样的!应该是判断   大于130或小于的情况输出 “年龄输入有误”
...

:)太谢谢了  对 我写的那个是两边都必须要满足才能执行的
回复 使用道具 举报
yangruijing 发表于 2015-3-7 16:05
两种判断的不一样,  if(age>0 && age

:)太谢谢了  对 我写的那个是两边都必须要满足才能执行的
回复 使用道具 举报
if(age>0 && age<130) {
        System.out.print("您输入的年龄有误");//这个不表示年龄符合的范围吗?为什么你还要输出年龄有误?
} else {
         this.age = age;
          demo();
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马