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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© duanhuilin 中级黑马   /  2012-11-14 15:21  /  1536 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int number1=5;
int number2=10;
将这两个变量的值互换,老师将的是需要借助第三个变量来实现。那么我现在不用第三个变量来实现这一效果如下:

        int number1 = 5;  
            int number2 = 10;
            number2 -= number1; //number2=5
            number1 += number2;
            Console.WriteLine("改变后number1的值是:{0},number2的值是:{1}", number1, number2);
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
number2-=number1;也可以直接写number2=number1;

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
int number1 = 5;  
            int number2 = 10;
            number2 -= number1; //number2=5
            number1 += number2;
            Console.WriteLine("改变后number1的值是:{0},number2的值是:{1}", number1, number2);
            Console.ReadKey();
是假象,并不能实现交换
number2 = number2 - number1;
number1 = number1 + number2;带入第一个number1 = number1 + number2 - number1;就是number1 =number2;
但第一个式子的number2 = number2 - number1;并不能保证number2 = number1;
你这个情况只有在number2 - number1 = number1的时候实现,

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
顶楼上的,这种情况只符合两个数为1:2的情况。如果是用户输入的话。不一定会按这个规律的数。
回复 使用道具 举报
            这样应该适合任何数了吧。
            int number1 = 3;
            int number2 = 12;
            number2 = number1 + number2;//number2=15;
            number1 = number2 - number1;//number1=12;
            number2 = number2 - number1;//number2=3;
            
            Console.WriteLine("number1={0},number2={1}", number1, number2);
            Console.ReadKey();
回复 使用道具 举报
舒远 黑马帝 2012-11-15 14:08:06
地板

                int a = 10;
                int b = 6;
                b = (a+ b -(a = b));
                Console.WriteLine(a);
                Console.WriteLine(b);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马