Intercambiar el contenido de dos variables en Java

En esta entrada vamos a explicar dos métodos para realizar el intercambio de valores entre dos variables.
El primer método de intercambio utiliza una variable auxiliar y el segundo método realiza el intercambio de valores sin utilizar variable auxiliar.

Intercambio de valores entre dos variables utilizando una variable auxiliar.


Programa para intercambiar el valor de dos variables. Los valores iniciales se leen por teclado.

Por ejemplo, suponiendo que las variables se llaman A y B, si A contiene 3 y B contiene 5, después del intercambio A contendrá 5 y B 3. 

En este ejemplo, para intercambiar el valor entre dos variables utilizaremos una avariable auxiliar donde guardar el valor de una de ellas. Después veremos la forma de hacerlo sin usar una variable auxiliar para el intercambio. 

Las instrucciones a realizar son:

AUX = A;
A = B;
B = AUX;

Programa completo:
/* 
 * Programa que lea dos variables
 * numéricas A y B e 
 * intercambie sus contenidos.
 */
import java.util.*;
public class Secuenciales2_5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int A, B, AUX;
        System.out.print("Introduzca valor de A: ");
        A = sc.nextInt();
        System.out.print("Introduzca Valor de B: ");
        B = sc.nextInt();
        System.out.println("Valores iniciales: A = " + A + "   B = " + B);                                        
        //instrucciones para hacer el intercambio
        //se utiliza una variable auxiliar
        AUX = A;
        A = B;
        B = AUX;      
        System.out.println("Valores intercambiados: A = " + A + "   B = " + B);                                   
    }
}



Intercambio de valores entre dos variables sin utilizar variable auxiliar.


También se puede intercambiar el valor de dos variables sin utilizar una variable auxiliar.
En ese caso se resuelve utilizando aritmética básica:

A = A + B;
B = A - B;
A = A - B;

Si por ejemplo A = 5 y B = 3

A = 5 + 3 = 8
B = 8 - 3 = 5
A = 8 - 5 = 3


Programa completo:
/* 
 * Programa que intercambie dos variables sin auxiliar
 */
import java.util.*;
public class Secuenciales2_5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int A, B, AUX;
        System.out.print("Introduzca valor de A: ");
        A = sc.nextInt();
        System.out.print("Introduzca Valor de B: ");
        B = sc.nextInt();
        System.out.println("Valores iniciales: A = " + A + "   B = " + B);                                        
        //instrucciones para hacer el intercambio
        //sin utilizar una variable auxiliar 
        A = A + B;
        B = A - B;
        A = A - B;
        System.out.println("Valores intercambiados: A = " + A + "   B = " + B);                                   
    }
}

21 comentarios:

  1. amigo ese ejercicio no me sirvio y lo hice tal cual como usd

    ResponderEliminar
    Respuestas
    1. Funciona correctamente. Asegurate declarar "import."

      Eliminar
    2. alguna manera de hacer este ejercicio en DFD???

      Eliminar
    3. Espero no haber llegado tarde pero el ejercicio funciona correctamente

      Eliminar
  2. claro que si te dejo el link
    http://uppix.com/f-2013_10_24_185305269c13600145c8f.jpg

    ResponderEliminar
  3. aora k retorne la inversa de un dado

    ResponderEliminar
  4. alguien me puede explicar que significa intercambiar el valor entre dos variables?

    ResponderEliminar
    Respuestas
    1. significa que los valores de la variable 1 pasan a la variable 2 y viceversa

      Eliminar
  5. hola, a pesar que no programo en java si me ayuda mucho ver ejercicios como este, podría alguien explicarme porque no lo hace cuando el valor x de la variable que quiero intercambiar es un string ??? cuando es un valor si lo hace sin problema pero no cuando es un string

    ResponderEliminar
  6. Hola buenas noche me podrias ayudar con un programa q desarolle matrices de 3x3

    ResponderEliminar
  7. El programa tiene q realizar paso a paso lo q se va desarollando

    ResponderEliminar
  8. Hola ya hice eso y me funciona bien, tengo un problema dice que el usuario ingresa u valor b mayor que a deben intercambiarsen las variables a y b yo puse a= aux, b<a y aux = b y no funciona como puedo hacer si una variable es mayor que la otra para intercambiarlas aqui esta mi codigo me he demorado 3 horas en realizarlo

    package Fundamentos;

    import java.util.Scanner;

    public class Parcial {
    public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    int a, b, i, AUX, suma=0, promedio;

    System.out.println("Multiplos de 3 en forma decendiente");
    System.out.println("");

    System.out.println("Ingrese un numero ");
    a = in.nextInt();

    System.out.println("Ingrese otro numero");
    b = in.nextInt();

    AUX = a;
    a = b;
    b = AUX;

    System.out.println("numero a: "+a+" y el numero b "+b);
    i=(a/3);
    System.out.println("El sistema genero: "+i+" numeros");

    while (b<=a) {

    System.out.println("");
    a--;

    if(a%3==0){

    System.out.println("Los Multiplos de 3 son: "+a);
    System.out.println("");
    suma = suma+a;
    promedio = suma/i;

    System.out.println("");
    System.out.println("El promedio es: "+promedio);

    } else{

    }

    }

    }
    }

    ResponderEliminar
  9. Muy gracias, ahora puedo intercambiar nenes judios por migas de pan

    ResponderEliminar
  10. hola te agradezco mucho sos un capoeira y sos mi idolo bro salud y prosperidad para la familia aguante jesus y todos los reyes magos pero nada de copas de pan

    ResponderEliminar
  11. Como seria con tres variables por ejemplo a=b, b=c y c=a...

    ResponderEliminar
  12. como se puede cargar variables en variables auxiliares sin intercambiarlas por ejemplo guardar en variable auxiliar variable usuario y variable contraseña

    ResponderEliminar
  13. amigo como puedo hacer me sale que Duplicate local variable y copila

    ResponderEliminar
  14. Me podría ayudar con este problema algoritmo

    Desarrolle un algoritmo que lea el monto de una compra. Dicha compra tiene un descuento de 20%. El valor final a pagar se le ajusta el impuesto de 7%.

    Imprima El valor de la compra inicial, el valor de descuento, el valor de impuesto, la compra con el descuento y la compra final con el impuesto.

    ResponderEliminar