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);
    }
}

9 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
  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