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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xtxiaolu 中级黑马   /  2014-4-19 19:59  /  967 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xtxiaolu 于 2014-4-19 20:15 编辑

不使用中间变量 把两个变量的值互换
int a=10;
int b=100;

这要怎么转呢!

点评

谢谢!我只是一下子没想起来!  发表于 2014-4-19 20:33
视频中有清晰的讲解,你再认真去回顾一下  发表于 2014-4-19 20:31

8 个回复

倒序浏览
a=b;b=10;这样应该可以0.0
回复 使用道具 举报
本帖最后由 清风有意 于 2014-4-19 20:09 编辑

采用异或的形式
  1. package exercise;

  2. public class Test7 {

  3.         public static void main(String[] args) {
  4.                 int a=10;
  5.                 int b=100;
  6.                 a=a^b;
  7.                 b=a^b;
  8.                 a=a^b;
  9.                 System.out.println(a+"..."+b);
  10.                
  11.         }

  12. }
复制代码


或者
  1. package exercise;

  2. public class Test7 {

  3.         public static void main(String[] args) {
  4.                 int a=10;
  5.                 int b=100;//但这种可能会损失精度,如果超出int的范围,就会损失精度
  6.                 a=a+b;
  7.                 b=a-b;
  8.                 a=a-b;
  9.                 System.out.println(a+"..."+b);
  10.                
  11.         }

  12. }
复制代码


在开发中,为了阅读性,一般都会采用第三方变量。
回复 使用道具 举报 2 0
  1. public static void main(String[] args){
  2.             int a = 10;
  3.             int b = 100;
  4.             a = a + b;
  5.             b = a - b;
  6.             a = a - b;
  7. }
复制代码
回复 使用道具 举报
不使用中间变量 把两个变量的值互换可以这样实现
代码有点小绕,可以自己慢慢理解,也可以使用^来实现
 int a=10;
 int b=100;
 a=a*b;
 b=a/b;  //这一步是把a的值付给b
 a=a/b;  
 System.out.print("a="+a+" b="+b);
回复 使用道具 举报
清风有意 发表于 2014-4-19 20:02
采用异或的形式

或者

谢谢,长知识了
回复 使用道具 举报
悠然丶 发表于 2014-4-19 20:06
不使用中间变量 把两个变量的值互换可以这样实现
代码有点小绕,可以自己慢慢理解,也可以使用^来实现
 int  ...

恩!谢谢知道了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马