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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨立考 中级黑马   /  2012-9-23 00:11  /  2199 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对两个整数变量的值进行互换 a=3,b=7要求将a,b的值互换。  想要的结果a=7  b=3 怎么做?

7 个回复

倒序浏览
本帖最后由 邱成 于 2012-9-23 00:29 编辑

public class Demo2 {
        public static void main(String []args){
                fangfa1(3,7);
                fangfa2(3,7);
        }
        public static void fangfa1(int m,int n){
                int temp;
                temp=m;
                m=n;
                n=temp;
                System.out.println(m);//输出7
                System.out.println(n);//输出3
        }
        public static void fangfa2(int m,int n){
                m=m^n;
                n=m^n;
                m=m^n;
                System.out.println(m);//输出7
                System.out.println(n);//输出3
        }        
}
回复 使用道具 举报
本帖最后由 李阳_TickTock 于 2012-9-23 00:33 编辑

我说怎么突然这么热闹。。原来进错区了{:soso_e125:}



入门视频里面有将,非常简单



假设你左手拿一个苹果,右手拿一个梨,都不能再抓第二个了,现在想交换,只能先放下一个,交换,拿起另一个

同理
  1. int a = 3;
  2. int b = 7;
  3. //交换这两个变量
  4. //先定义一个临时变量
  5. int tmp = 0;
  6. //把a的值赋给tmp
  7. tmp = a;
  8. //把b的值赋给a
  9. a = b;
  10. //这时,a=b=7,tmp=以前的a=3
  11. //把tmp赋给b
  12. b = tmp;

  13. //这时,a=7,b=3,完成交换
复制代码
回复 使用道具 举报
把老毕的视频好好看看,就明白了。
回复 使用道具 举报
本帖最后由 张小龙 于 2012-9-23 08:28 编辑

这个太简单了
你想立即交换就建个新变量temp
temp=a;
a=b;
b=temp;
要是想通过方法交换就传递数组或者类变量
int[] method(int[] x){
int temp;
temp=x[0];
x[0]=x[1];
x[1]=temp;
return x;
}

或者类对象:
object method(object x){
int temp;
temp=x.a;
x.a=x.b;
x.b=temp;
return x;
}
希望对楼主有帮助
回复 使用道具 举报
  1. package cn.itcast.day1;

  2. public class Practise {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.         int a = 3;
  9.         int b = 7;
  10.         System.out.printf("交换前a的值是%d b的值是 %d\n",a,b);
  11.         int c = 0; //定义一个变量存储调换的值
  12.         c = a; //首先把a的值赋值给c 现在c的值就是a的值
  13.         a = b; //把b的值7赋值给a
  14.         b = c; //也就是把原来a的值3赋值给b
  15.         System.out.printf("交换后a的值是%d b的值是 %d",a,b);
  16.         
  17.         }

  18. }
复制代码
回复 使用道具 举报
李培根 来自手机 金牌黑马 2012-9-23 20:29:29
7#
毕老师的视频里面有讲到的,三个方法,第三方变量,异或,还有变量之间加减运算。好好看看视频吧。
回复 使用道具 举报
class LianXi4
{
public static void main(String[] args)
{
  int x = 3,y = 7,z;
  System.out.println("互换前:x="+x+"\ty="+y);
  z = x;
  x = y;
  y = z;
  System.out.println("互换后:x="+x+"\ty="+y);
}
}

11111111111111111111111111111.png (896 Bytes, 下载次数: 45)

11111111111111111111111111111.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马