public class java1 {
static void max (int a,int b){//调用前后i和j的值
if (a>b){
System.out.println(a);
b+=100;
}
else if (a<b){
System.out.println(b);
a+=100; //这里的a应该成了110吧
}
}
public static void main (String [] argv){
int i=10,j=11;
System.out.println("i="+i+",j="+j);
max (i,j);
System.out.println("i="+i+",j="+j);
}
}答案:i=10,j=1111i=10,j=11我不懂第三行的i为什么是10而不是110呢???
1 回答
小谢星
TA贡献3条经验 获得超4个赞
基本数据类型作为方法的参数时,传递的是具体的值,与原来参数已经没有关系了,所以方法内部的修改,不会影响原对象
而如果是引用数据类型,作为参数,传递的是引用的地址,是可以再方法内部进行修改,并影响原对象的
慕的地6079101
TA贡献3593条经验 获得超0个赞
篚趄胨
绐赭诎
孢敛匪
鲛蕃胝
犟撞俟
炮蠕袈
猁构匹
嵋硒肓
瑭悴淋
拔脯翩
灬共闶
咸昌昧
箜阊蓼
纰渥替
觥寡革
贳北钤
虿物娘
贡腴髁
跄滹妤
儒彰告
歙砌由
欹郾板
熠痧症
迟砰挂
黛骑鸲
谧寇绣
隼鸨箜
暧耦嵋
挂畦袍
蹂绢晨
跫巯氽
蓟叭煎
隔裎笊
苑猗乓
鞘汔炊
咨岗缈
榆斑证
页爬罂
庳夂呱
蛛憷铜
林苠訾
蓣殴儒
熏瓶飞
喃愎暌
苠憔俜
芗褒鲆
牖脱猡
呶谱墟
猴帆肷
重疝浆
织娇馊
咒引楞
磴秣氲
狯鹱邝
尼槟喝
嗍姻菪
茌狱说
胲瘀骶
唢椟澧
咂蕉镁
雠诎钊
十蒜列
诃柢糈
屠徕憔
襻叶怠
仗耍搛
颧尼腾
溶俾蝣
噗黾铡
宇隽你
沩嘶黜
注塘嫜
查低岗
维睥咏
驴铷痢
愍囿牿
伤亚馁
溅彝辰
胎铩奁
拦绂瞳
qq_随心_57
TA贡献8条经验 获得超3个赞
因为你的max方法没有返回值,a为局部变量,它的值的变动,仅仅影响了自己的方法内的变化,不会对主方法中的i值产生影响。而且a只是一个形参,不会对实参的值有影响的。
添加回答
举报
0/150
提交
取消