두 변수의 값을 교환하는 예제 (p.24)
public class Ex2 {
public static void main(String[] args) {
int x = 10, y = 20;
int tmp = 0;
System.out.println("x: " + x + " y: " +y);
tmp = x;
x = y;
y = tmp;
System.out.println("x: " + x + " y: " +y);
}
}
그 이유는 = 대입연산자의 성질 때문이다. 대입 연산자는 값을 단순히 넣는 다는 개념을 넘어서 자기변수의(x) 값을 유지하면서 대입하려는 변수에(y) 값을 복사하는 시스템이기 때문에, 대입하려는 변수(y)에 있던 값을 따로 빼 놓지 않으면 y = x라는 문장으로 인해 y에 원래 들어있던 값이 사라지게 된다.
이를 방지하기 위해서 tmp라는 임시 변수를 하나 사용해 그 변수에 y값을 넣고 x값을 y에 복사한 뒤 tmp에 넣어뒀던 값을 다시 x에 넣어 교환을 성사시킨다.
문자 리터럴과 문자열 리터럴 예제 (p.35)
class StringEx{
public static void main(String[] args) {
String name = "Ja" + "Va";
String str = name + 8.0;
System.out.println(name);
System.out.println(str);
System.out.println(7 + " ");
System.out.println(" " + 7);
System.out.println(7 + "");
System.out.println("" + 7);
System.out.println("" + "");
System.out.println(7+ 7+ "");
System.out.println("" + 7 + 7);
}
}
여기서 나온 개념은 이것이다.
문자열 + any type = 문자열 + 문자열 = 문자열
any type + 문자열 = 문자열 + 문자열 = 문자열
덧셈 연산자는 왼쪽에서 오른쪽의 방향으로 연산을 수행하기 때문에 결합순서에 따라 결과가 달라진다는 것에 주의하자 !
그리고 7과 같은 기본형 타입의 값을 문자열로 변환할 때는 아무런 내용도 없는 빈 문자열("")을 더해주면 된다는 것도 알아두자.
Scanner 예제 (p.40)
import java.util.*; // Scanner를 사용하기 위해 추가
class ScannerEx{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("두 자리 정수를 하나 입력하시오");
int num = Scanner.nextInt();
System.out.println("입력내용:" + num);
System.out.printf("num = %d%n",num);
}
}
이 예제에서 주의할 점은
import java.util.*;
문을 맨 위에 꼭 써야 한다는 것과
Scanner 클래스를 이용할 때는 객체를 생성해서 사용해야 한다는 것이다.