Java 方法的参数是简单类型的时候,是按值传递的 (pass by value),所以Java里面不能实现和C中一样的swap方法来交换两个数的值.非要用的话只能这样写:
//交换数组data中的第a和第b个元素
public?static?void?swap(int[]?data,?int?a,?int?b)?{
int?t?=?data[a];
data[a]?=?data[b];
data[b]?=?t;
}
估计不是你想要的效果.
? ?关于Java中参数和引用的问题建议看看下面的博文:
public?static?void?main(String[]?args)?{
//定义输入对象s?
Scanner?s=new?Scanner(System.in);
System.out.print("输入第一个数的值:\t");
int?number1=s.nextInt();
System.out.print("\n输入第二个数的值:\t");
//定义中间变量temp进行交换(你小学老师问你:现在有红墨水1瓶、蓝墨水1瓶,要你将红、蓝两种墨水交换瓶子,你是不是要找个空瓶子来处理)
int?temp=number1;
JAVA是面向对象的语言,没有象c中指针这样危险的东西,要编这种简单数学问题你最好用c,Pascal或者VB这样的语言,用面向对象语言解决有点大材小用,c你总会把,用c解决
#include stdio.h
void changeXy(int *x,int *y){
int *temp;
temp = x ;
x=y;
y=temp;
main(){
int a;
int b;
a=10;
printf("输出互换前手中的纸牌:");
printf("左手中的纸牌:%d",a);
printf("右手中的纸牌:%d",b);
printf("\n");
changeXy(a,b);
printf("输出互换后手中的纸牌:");
也可以用java解决:
public class change{
private static int a,b;
public static void main(String args[]){
System.out.println("输出互换前手中的纸牌:");
System.out.println("左手中的纸牌:"+a);
System.out.println("右手中的纸牌:"+b);
System.out.println();
changeXy();
System.out.println("输出互换后手中的纸牌:");
public static void changeXy(){
int temp;
temp = a ;
a=b;
b=temp;
JAVA对两个整数变量的值进行互换(不需要第三方变量)的程序如下:
方法一(加减法):
a?=?a?+?b;
b?=?a?-?b;
a?=?a?-?b;
方法二(异或运算):
a?=?a?^?b;
b?=?a?^?b;
代码实现如下:
public?class?Demo?{
public?static?void?main(String?[]?args){
//method_1(m,?n);
/**
*?使用异或^
*明白一个数,如果异或同一个数两次,那么就等于本身
*/
m=m^n;
n=m^n;
System.out.println("m="+m+"\tn="+n);
*?使用自身的数组,加减运算
m=m+n;
n=m-n;
m=m-n;
这么写就没错误了.
你要是用swap方法,应该多个赋值
把swap的结果,赋值给xy
以上就是土嘎嘎小编为大家整理的java二个数的交换代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!