1. 다음의 프로그램은 잘못된 프로그램입니다. 어떤 부분이 잘못되었는지 찾고, 잘못된 이유를 설명하십시오.
byte 에다가 int 를 할당하고 있어서 컴파일 에러가 난다. 강제로 형변환할 수 있지만, 상황에 따라서 값이 잘릴 수도 있는 위험이 있기 때문에, 처음부터 total 을 int 로 선언하는 것이 좋다.
2. 다음의 식이 각각 어떤 값을 산출할지 괄호 안에 쓰십시오.
a) 10 % 7 ( )
b) --100 ( )
c) "10*20=" + 10 * 20 ( )
d) 12e2 < 1234 ( )
e) true & false | true ( )
f) 100 == 100.0 ( )
g) true && false || true ( )
h) 3 & 4 ( )
i) 4 == ( 3 + 1 ) ? 0 : 1 ( )
j) 1 << 3 ( )
a) 10 % 7 ( 3 )
b) --100 ( 99 )
c) "10*20=" + 10 * 20 ( "10*20=200" )
d) 12e2 < 1234 ( true )
e) true & false | true ( true )
f) 100 == 100.0 ( true )
g) true && false || true ( true )
h) 3 & 4 ( 0 )
i) 4 == ( 3 + 1 ) ? 0 : 1 ( 0 )
j) 1 << 3 ( 8 )
프로그램으로 검증해 보았다. 그런데 같은 리터럴에 증감 연산자를 적용하거나 같은 리터럴을 비교하는 것은 컴파일 에러가 나서 따로 변수에 넣었다.
다음과 같은 결과를 얻을 수 있었다.
a) 3
b) 99
c) 10*20=200
d) true
e) true
f) true
g) true
h) 0
i) 0
j) 8
3. 다음 중 잘못된 식을 고르고 어디가 잘못되었는지 설명하십시오.
3 & 100L ++num++ true + 3 "-_-" + true + 3
true > false 0xFF00 || 0x00FF --100 120e3 << 2
++num++ : 증감 연산자는 하나만 붙일 수 있다.
true + 3 : boolean 은 정수로 변환될 수 없다.
true > false : boolean 은 대소비교를 할 수 없다.
0xFF00 || 0x00FF : 정수는 boolean 으로 변환될 수 없다.
--100 : 리터럴에는 증감 연산자를 붙일 수 없다.
120e3 << 2 : 실수에는 shift 연산자를 붙일 수 없다.
'Programming > 뇌를 자극하는 Java 프로그래밍' 카테고리의 다른 글
[ 뇌를 자극하는 Java 프로그래밍 ] 5장, Excercise 5-4 (0) | 2013.04.10 |
---|---|
[ 뇌를 자극하는 Java 프로그래밍 ] 5장, Vitamin Quiz, private 필드의 장단점 (2) | 2013.04.10 |
[ 뇌를 자극하는 Java 프로그래밍 ] 5장, Excercise 5-3 (0) | 2013.04.10 |
[ 뇌를 자극하는 Java 프로그래밍 ] 5장, Excercise 5-2 (0) | 2013.04.10 |
[ 뇌를 자극하는 Java 프로그래밍 ] 5장, Excercise 5-1 (0) | 2013.04.10 |
[ 뇌를 자극하는 Java 프로그래밍 ] 4장, Vitamin Quiz, 넓은 범위로의 캐스트 연산은 안전할까? (0) | 2013.04.09 |
[ 뇌를 자극하는 Java 프로그래밍 ] 4장, Vitamin Quiz, 조건 연산자와 증가 연산자 (0) | 2013.04.09 |
[ 뇌를 자극하는 Java 프로그래밍 ] 4장, Excercise 4-2 (0) | 2013.04.09 |
[ 뇌를 자극하는 Java 프로그래밍 ] 4장, Excercise 4-1 (0) | 2013.04.09 |
[ 뇌를 자극하는 Java 프로그래밍 ] 3장, 이것만은 알고 갑시다 (0) | 2013.04.08 |