short a, b;

a = 10;
b = 5;
/*

b = b + a; 는 컴파일 오류임. +연산은 int로 형 변환이 일어나기 때문이다.

따라서 b = (short)(b + a); 로 해야한다.

*/
b += a; 
System.out.println(b);

15

/*

b +=a; 는 형 변환이 일어나지 않는 연산이다. b=b+a와 결과가 동일하다.

*/
char c = 'A';
c += 10;
System.out.println(c); 

/*

65+10 = 75 에 해당하는 char는 K 이다.

*/
float f = 3.5f;
char ch = 'A';
ch += f;
System.out.println(ch);

/*

65+3.5 = 68.5 이지만 char에 들어갈때 알아서 정수가 들어간다. 68에 해당하는 char는 D.

*/

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0705_Ex16_Operator  (0) 2021.07.06
0705_Ex15_Operator  (0) 2021.07.06
0705_Ex13_Bit  (0) 2021.07.06
0705_Ex12_Bit  (0) 2021.07.06
0705_Ex11_Bit  (0) 2021.07.06

a = 10;
b1 = false;
b2 = a>20 && (b1=true);

 

&& 연산은 둘 다 true이어야 한다.

하지만 a>20 에서 바로 false 이므로 뒤는 true 던 false던 false이므로 단축연산을 한다.

따라서 뒤에는 계산하지 않으므로 false, false가 출력된다.

 

a = 10;
b1 = false;
b2 = a<20 || (b1=true);

 

||연산은 앞부분이 true 면 뒤는 true 던 false던 true 이므로 단축연산을 한다.

뒤는 계산하지 않으므로 false, true 가 출력된다.

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0705_Ex10_Bit  (0) 2021.07.06
0705_Ex09_Logical  (0) 2021.07.05
0705_Ex07_Logical  (0) 2021.07.05
0705_Ex06_Relational  (0) 2021.07.05
0705_Ex05_Operator  (0) 2021.07.05

문자열 + 기본자료형 => 문자열(결합) 이 된다.

연산순서에 따라 korea+9 를 먼저 하면 korea9 + 3이 되므로 korea93

 

9+3 을 먼저하므로 12korea

문자 + 문자열 =>문자열 이므로 Akorea15

'0'에 해당되는 숫자 48이므로 48+10 을 먼저 하게된다. 58korea

'A'에 해당되는 숫자는 65. 따라서 70korea가 나오게 된다.  

 

\u0041은 16진수 유니코드를 의미하는 것이다. (즉 16진수 0041은 10진수로 65)

c = '\101'; //8진수 유니코드를 나타냄. (8진수 101은 10진수로 65)

\ 출력을 위해서는 \\를 쳐야함(두 번)

char는 유니코드는 6만 5천개 정도를 표현할 수 있다. 따라서 만약

c = 70000; 는 오류가 남.

c = a;로 하면 컴파일 오류가 나는데 char는 int에 넣을 수 없기 때문이다.

 

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex09_String  (0) 2021.07.04
0702_Ex08_boolean  (0) 2021.07.04
0702_Ex06_Precision  (0) 2021.07.04
0702_Ex05_DataType  (0) 2021.07.04
0702_Ex04_Literal  (0) 2021.07.04

+ Recent posts