PHP中如何不引入第三个变量的条件下实现:交换两个变量的值?

(1)一般情况下,我们只需要引入一个临时变量中转一下即可:

<?php
	$a=2;
	$b=3;
	echo "交换之前a=".$a.",b=".$b;
	echo "<br />";

	$tmp=$a;
	$a=$b;
	$b=$tmp;
	echo "交换之前a=".$a.",b=".$b;
?>

(2)而如果不引入临时变量时,怎么操作呢?其实本质还是需要第三者插足的,只是这个第三者我们可以自己组装,核心思想是利用已有的2个变量创造一个变量。

<?php
	$a=2;
	$b=3;
	echo "交换之前a=".$a.",b=".$b;
	echo "<br />";

	$a=$a+$b;
	$b=$a-$b;
	$a=$a-$b;
	echo "交换之前a=".$a.",b=".$b;
?>
时间: 2024-07-30 13:41:48

PHP中如何不引入第三个变量的条件下实现:交换两个变量的值?的相关文章

【编程题】不引入第三个变量,而交换两个变量的值

不引入第三个变量,而交换两个变量的值 方法一:算术运算 1 int a,b; 2 a=10;b=12; 3 a=b-a; //a=2;b=12 4 b=b-a; //a=2;b=10 5 a=a+b; //a=12;b=10 它的原理:把a,b看做数轴上的两个点. 第一句"a=b-a"求出了ab两点之间的距离,并且将其保存在a中: 第二句"b=b-a"求出了a到原点的距离(b到原点的距离减去ab两点距离),并且将其保存在b中: 第三句"a=b+a"

PHP中不用第三个变量交换两个变量的值

相信大家在PHP面试或者学习中经常会遇到这个问题就是“不用第三个变量来交换两个变量的值”,今天正对这个问题来讨论一下: 第一种方法:首先会想到的 这种方法简单可行,顺利的交换了两个变量的值. 第二种方法呢,稍加思考我们就会用到PHP中的函数来实现 第三种方法呢,我们来采用PHP中提供各种字符串分割函数来实现. 简单的题目不同的思想就会有不同的解法,期待更多的答案.

JavaScript中交换两个变量的值得三种做法(代码实现)

javascript在编程时经常会涉及到如何交换两个变量的值,例如常见的冒泡排序,快速排序等:下面我讲根据自己近期所学总结几种常见的交换两个变量值的方法: 方法一:借助第三方变量交换两个变量的值 var num1=20; var num2=50; var temp=num1; num1=num2; num2=temp; console.log(num1);//在控制台输出交换后的num1=50 console.log(num2);//在控制台输出交换后的num2=20 方法二:借助加法计算,交换

交换两个变量的值的三种实现方式

交换两个变量的值的方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>交换两个变量的值的方式</title> </head> <body> <script> //第一种方式:使用第三方的变量进行交换 var num1 = 11; var num2 = 12; //把

交换两个变量以及不用第三个变量交换两个变量

这个可能网上一搜一大把一大把的,可是今天我看到了一个新的写法,所以就写这篇文章记录一下,不不知道百度有没有,没去搜索! 方法1:这是最简单,也是最常用的一个方法! int n1 = 10, n2 = 20; int tmp = n1; n1 = n2; n2 = tmp; Console.WriteLine("n1={0},n2={1}", n1, n2); Console.ReadKey(); 方法2:算术运算 //交换两个变量,不使用第三个变量 int n1 = 10, n2 =

不使用第三个变量交换两个变量的值

交换两个变量(a和b)的值,最简单的办法是另定义一个变量(c),将a赋给c,然后调换. 下面给出几种不使用第三个变量的办法: 1.利用运算交换两个变量值 a = b - a; b = b - a; a = b + a; 2.位运算 通过异或运算来交换值 a=a^b; b=a^b; a=a^b; 3.交换指针地址

交换两个变量的值,不使用第三个变量(两种方法)

//交换两个变量的值,不使用第三个变量. //有两种解法, 一种用算术算法, 一种用^(异或) //异或:相同为0,不同为1.相当于减法. #include <stdio.h> int main() { int a = 8; int b = 9; printf("初始状态:a = %d, b = %d\n",a,b); a = a + b; b = a - b; a = a - b; printf("算数交换:a = %d, b = %d\n",a,b)

Golang中交换两个变量的值,但是不允许使用第三个变量?

package main import ( "fmt" ) func main() { //声明两个变量并且赋值 a=10 b=20 交换后的值是a=20 b=10 并且,不可以使用第三个变量 a := 10 b := 20 //1.首先a=a+b的值 10+20=30 a = a + b // 这个时候a的值发生改变但是b的值没有 b=a-b b = a - b // b = a -b ==>> b = a + b -b 等于a的值 b=10 a = a - b // a

java(引入一个中间变量,不引入中间变量)交换两个变量的值

一.描述 在不引入其它变量的情况下交换两个数,引入一个变量做中介,交换两个数的值. 二.源代码 <span style="font-size:18px;">package tong.yue.sort; public class SwapTwoValues { /** * @param args */ public static void main(String[] args) { int a = 10,b = 20; swapByExtraVariable(a,b); sw

(转)交换两个变量的值,不使用第三个变量的四种法方

通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用.在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法). 上面的算法最大的缺点就是需要借助一个临时变量.那么不借助临时变量可以实现交换吗?答案是肯定的!这里我们可以用