package ja_0725;
public class String_2 {
public static void main(String[] args) {
int ii = 77;
float ff = 45.78f;
String str = "점수 : ";
System.out.println(str + ii + ','+ ff);
System.out.println(2 + 0 + 2 + 2 + "년");
System.out.println("월드컵 : " + 2 + 0 + 2 + 2);
}
}
이 때의 출력값은 어떻게 나올까요?
점수 : 77,45.78
6년
월드컵 : 2022
이라는 출력값을 갖게 됩니다.
그렇다면 왜
System.out.println(str + ii + ','+ ff);
System.out.println(2 + 0 + 2 + 2 + "년");
System.out.println("월드컵 : " + 2 + 0 + 2 + 2);
의 값이 어떻게 다르게 나왔을까요?
첫번째줄은 (string + int + char + float)의 형태를 띄게 됩니다.
string + int = string
string + char = string
string + float = string이 나옵니다.
그래서 모든 열이 문자로 출력된 것입니다.
두번째 줄과 세번째줄은 얼추 비슷해보이는데 다른 값을 갖고있습니다.
왜일까요?
int + int = int 입니다.
그렇게 2022가 아닌 2+0+2+2가 되어 6 의 값이 나오고
거기에 string값이 더해진 것이죠
마지막줄은 어떨까요? string값이 먼저 나오게 된다면 그 뒤의 문자나 상수들은 모두 string으로 바뀌어 출력됩니다.
그렇기 때문에 월드컵 : 2022로 나오게 된 것입니다.
그렇다면 두번째 줄 "년" 뒤에 다시 2+0+2+2가 나오게 된다면
6 년 6이 출력될지 6년 2022가 출력될지 궁금하겠지요?
정답은 후자입니다. 문자열 string 후에는 상수가 문자 그대로 출력되기 때문입니다.