Nyckelord: System.out.print

Byt plats på variabler
Kod-Kalle skriver ett program där han skapar variablerna a = 1 och b = 4. Han vill sedan byta plats på variablerna så att b = 1 och a = 4. Han skriver följande program.
public class Uppgift8 {
public static void main(String[] args) {
int a = 1;
int b = 4;
System.out.println(a);
System.out.println(b);
a = b;
b = a;
System.out.println(a); // Ska skriva ut 4
System.out.println(b); // Ska skriva ut 1
}
}
Vad gör Kod-Kalle för fel? Hur ska Kod-Kalle göra för att få programmet att fungera?
Ledtråd
På rad 7 sätts a = b. Då skriver man över värdet som redan finns i a. Nu är alltså värdet på a = 4 och inte längre 1.
När vi sedan på rad 8 sätter b = a, tilldelas variabel b samma värde som a har, det vill säga 4. Nu har alltså både a och b värde 4. Vi behöver alltså en tredje variabel för att temporärt spara undan värdet på a-variabeln.
Svar
Förklaring:
När variabelbytet görs så sätter Kod-Kalle a = b och b = a. Problemet är att när man gör tilldelningen a = b, så skrivs värdet på a över så att det inte längre finns. Utskriften blir alltså:
1
4
4
4
Lösningen är att använda sig av en tredje variabel som man temporärt sparar undan värdet i. Exempelvis:
public class Uppgift8 {
public static void main(String[] args) {
int a = 1;
int b = 4;
int c;
System.out.println(a);
System.out.println(b);
c = a;
a = b;
b = c;
System.out.println(a);
System.out.println(b);
}
}
Vilket ger:
1
4
4
1