代码返回问题!为什么这样写后return回来的数值为0?

代码返回问题!为什么这样写后return回来的数值为0?

// 设置学科年限,限制年限必须>0
	public void setsubjectLife(int subjectLife) {
		if (this.subjectLife <= 0)
			return;
		this.subjectLife = subjectLife;
	}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

1、在这个方法中没有写返回值呀,同学为什么说retuen回去的数据是0呢?return后就跳出方法了,

这里给它可以加一个默认值:

例如,如果小于0,我们把它的默认值设置为10

 public void setsubjectLife(int subjectLife) {

//判断传进来的参数是否小于等于0,如果小于等于0,则我们给它赋个默认值10 再把它设置给subjectLife属性

        if (subjectLife <= 0){

            subjectLife =10;

    }   

        this.subjectLife = subjectLife;

    }

同学的代码是,如果小于等于0,则就直接return出方法,那么属性还是默认值为0

2、初学阶段,不建议同学省略if  等后边的大括号呦,容易出错。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • W_H_N 提问者 #1
    老师,我上面的代码中,即使我subjectLife赋值为4;为啥属性还是默认值0啊?
    2019-02-27 18:48:12
  • W_H_N 提问者 #2
    我的代码中跟视频里的有点不同的是,视频里是if(subjectLife<=0)) return; 而我的是if(this.subjectLife<=0) return;我的代码不管赋值为4,还是-4。结果都是0。我不明白的点在这里。
    2019-02-27 18:53:20
  • 好帮手慕阿莹 回复 提问者 W_H_N #3
    因为subjectLife<=0是判断传进来的参数subjectLife,而同学this.subjectLife<=0则是判断的本类中的属性值,int类型的默认值本身就是0,所有就执行了return。
    2019-02-27 19:00:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师