老师,我想把交换数据的方法单独提出来,应该怎么做呢?我调用过方法但实际值还是没变
public class Test{
private static void exchange(int a,int b){
int temp =a;
a = b;
b = temp;
}
public static void main(String[] args) {
int x = 1, y = 2;
exchange(x,y);
System.out.println(x + " " + y);
}
}
8
收起
正在回答
2回答
是的,如果你想在主程序中交换数值,需要将x和y定义为全局变量,然后在exchange方法中将修改之后的值再重新赋值给变量x和y,这样在主方法中的x和y就改变了。请参考一下代码进行修订:
public class Test{ static int x = 1, y = 2; private static void exchange(int a,int b){ int temp =a; a = b; b = temp; x=a; y=b; } public static void main(String[] args) { exchange(x,y); System.out.println(x + " " + y); } }
修订之后的效果。
针对你的代码也有更好的方法,可以将exchange方法改为无参的,请参考下图代码进行修改,如果我的建议解决了你的问题,请采纳,祝学习愉快~
public class Test{ static int x = 1, y = 2; private static void exchange(){ int temp =x; x = y; y = temp; } public static void main(String[] args) { exchange(); System.out.println(x + " " + y); } }
chrismorgen
2018-07-08 14:43:40
你需要在exchange方法中输出看xy的值有没变,如下图所示。
输出的内容如下图:
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星