Byta värde på variablerna a och b
Hej, jag ska lägga till satser för att byta värde på variablerna a och b så att om a läses in som 10 och b som 25 ska det ge utskriften 25 10. Jag gör dock något fel (det står att jag har skrivit ”else” utan ”if” men det har jag med). Ser någon vad jag gör fel?
(OBS! Vissa satser är redan tillagda. Jag infogar dessa nedan.)
Tack på förhand!
if (condition1) {
// block of code to be executed if condition1 is true
} else if (condition2) {
// block of code to be executed if the condition1 is false and condition2 is true
} else {
// block of code to be executed if the condition1 is false and condition2 is false
}
Du saknar block of code efter if-statement ...
Tillägg: 2 nov 2022 20:06
Ser inte riktigt hur din logik byter värden på variablerna.
import java.util.Scanner;
public class MyClass {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
// Swap values
a = a ^ b ^ (b = a);
System.out.println(a + " " + b);
}
}
Om du använder if så måste du ha ett logiskt uttryck i paranteserna, som du har gjort. Du kan inte sedan lägga en else if inuti din if. Else if kommer kollas om inte din if-sats är sann.
Ganska dålig uppgift att demonstrera logiska satser dock.
@Euclid, du borde också köra scan.close() i slutet, annars har du memory leak. Det är nog inte heller så användbart att visa en lösning som bygger på att man vet vad XOR är för något. Det leder nog till att TS blir mindre motiverad eftersom det ser ganska komplicerat ut om man inte vet att ^ inte betyder upphöjt till, utan är en logisk XOR. Mer naturligt är kanske att använda en extra variabel för att byta värden. Kanske till om med inser man att man kan spara ännu mer minne i stacken genom att använda sig av addition och subtraktion för att byta värden.