[Java] 오답

하채린·2021년 6월 18일
0

Q. 다음 중 키워드가 아닌 것은?(모두 고르시오)
① if ② True ③ NULL ④ Class ⑤ System

② ③ ④ ⑤

사실 이 문제는 짐작으로 ② ③ ⑤으로 풀었는데,
Java에서는 대소문자를 구별하고, 키워드는 소문자로 시작하기 때문에 대문자로 시작하는 것들은 키워드가 아니다.

아래는 Java에서 사용하는 키워드들이다.

abstract default if package this
assert do goto private throw
boolean double implements protected throws
break else import public transient
byte enum instanceof return true
case extends int short try
catch false interface static void
char final long strictfp volatile
class finally native super while
const float new switch
continue for null synchronized


Q. 다음 문장들의 출력결과를 적으세요. 오류가 있는 문장의 경우, 괄호 안에 '오류'라고 적으시오.

System.out.println('A' + 'B'); // 131
// 'A' + 'B'의 경우 char + char -> int + int -> int가 됌
// 'A'의 문자코드 : 65, 'B'의 문자코드 : 66
System.out.println('1' + 2); // 51
// '1'의 문자코드 : 49
System.out.println('1' + '2'); // 99
// '2'의 문자코드 : 50

131, 51, 99

이 문제는 답을 AB, 3, 12라고 풀었다....
위와 같은 답이 나온 이유는, 문자열과 덧셈연산을 하면 그 결과는 항상 문자열이 되지만 문자와 문자의 덧셈연산 결과는 int형 정수값이 된다.
왜냐하면 int형보다 작은 타입(byte, char, short)은 int형으로 변한된 후에 덧셈연산이 진행되기 때문이다.
이 부분을 꼭 기억하자.

references

profile
developer d의 왼쪽 커서쯤 🏃‍♂️🏃‍♀️

0개의 댓글