문자열

'A' + 10 이 먼저 우선순위라서 먼저 연산.

'A' 는 65의 숫자 이므로 65+10

문자+기본자료형 => 문자열

75korea가 나온다.

 

문자열+문자 = >문자열 

koreaA10

s = 12+12+"A";는 24A

s = ""+12+12+"A"; 는 1212A 가 된다. 

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

0702_Ex11_Operator : 두 정수를 입력 받아 사칙연산하기  (0) 2021.07.04
0702_Ex10_Operator  (0) 2021.07.04
0702_Ex08_boolean  (0) 2021.07.04
0702_Ex07_DataType  (0) 2021.07.04
0702_Ex06_Precision  (0) 2021.07.04

boolean 자료형은 1byte 이다.

C언어와 다르게 0, 1로 설정하는 것이 아닌 true, false로 설정해야한다.

 

b = 0;

b = "false"; 둘 다 컴파일 오류가 발생한다.

 

b = true;

b = false; 로 설정해야한다.

 

여태까지 자료형에 대해 알아보았다.

기본자료형은 8가지가 있다.

정수형은 byte(1byte -128~127까지표현), short(2byte), int(4byte. -21억~21억까지 표현) , long(8byte)이 있다.

문자형은 char(2byte)이 있다.

실수형은 float(4byte), double(8byte)이 있다.

마지막으로 boolean 이 있다.

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

0702_Ex10_Operator  (0) 2021.07.04
0702_Ex09_String  (0) 2021.07.04
0702_Ex07_DataType  (0) 2021.07.04
0702_Ex06_Precision  (0) 2021.07.04
0702_Ex05_DataType  (0) 2021.07.04

 

\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

정밀도

float는 정밀도가 낮으므로 사용시 조심해야 한다.

같은 값들을 표현한 것처럼 보이지만 실행시에

float의 2_000_000_050 값은 2000000000.00 으로 표현되기 때문이다.

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

0702_Ex08_boolean  (0) 2021.07.04
0702_Ex07_DataType  (0) 2021.07.04
0702_Ex05_DataType  (0) 2021.07.04
0702_Ex04_Literal  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04

실수형 자료형, 리터럴, 형 변환

float 는 단정도형 실수를 표현하는 자료형으로 4byte

double 은 배정도형 실수를 표현하는 자료형으로 8byte

a = 0;을 넣으면 int는 float로 자동 변환되어 저장이 된다.

a = 0.5f; 는 f를 붙여서 리터널을 표시해준 것이다.

char는 float에 대입할 때 자동으로 float로 형 변환이 된다. A의 값은 65.

 

double 을 float에 넣으려면 형 변환 (float)를 해줘야 한다.

 

 

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

0702_Ex07_DataType  (0) 2021.07.04
0702_Ex06_Precision  (0) 2021.07.04
0702_Ex04_Literal  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04
0702_Ex02_Scanner.java  (0) 2021.07.04

정수형 리터럴

d0b는 2진수를 나타낸다.

0은 8진수를 나타낸다.

0x는 16진수를 나타낸다.

_는 각 자리값을 구분한다.

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

0702_Ex06_Precision  (0) 2021.07.04
0702_Ex05_DataType  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04
0702_Ex02_Scanner.java  (0) 2021.07.04
0702_Ex01_Scanner.java  (0) 2021.07.03

이번에는 자료형에 대해서 알아보겠다.

byte 는 -128에서~127까지 나타내는 자료형이다.

1byte 는 8비트로 표현하는데 1비트는 부호를 나타내고 나머지 7비트로 숫자를 나타내기 때문에 -128~127를 나타낼 수 있는 것

 

따라서 

b2 = 200; 을 주면 표현 범위를 벗어나기 때문에 표현할 수 없다.

 

short 타입은 2byte 자료형이다. 

문자 A는 65를 나타냄.

c는 아스키 코드값으로 99를 나타낸다.

 

char는byte와 비교불가함!!

문자는 단 한 개를 말하는 것이고 ''으로 표현함. 문자열은 0문자 이상을 말하고 ""로 나타냄.

 

int 타입은 4byte자료형이다.

자바는 int형이 연산을 위한 기본 타입이다.

b2 = i1; 컴파일 오류가 발생한다. 큰 자료형(int 4byte)은 작은 자료형(byte 1byte)에 대입이 불가하다.

b2 = (byte)i1; 처럼 int를 byte로 형 변환을 시키면 대입할 수 있다. 하지만 i1의 값은 150이므로 표현값(-128~127)을 넘어가기 때문에 overflow가 발생한다. 즉 150은 1001 0110인데 앞에 1은 부호를 나타내는 것이고 음수를 컴퓨터가 저장할 때는 2의 보수로 저장하기 때문에 1110 1010으로 저장이 되는 것. 그래서 -106가 나옴.

 

'1' 문자 1을 말하는 것이기 때문에 해당 숫자는 49이고 '3'은 문자 3이기에 51. 따라서 i3은 100이 나온다.

ㅇ'c'는 99.

 

long은 8byte 자료형이다.

 

long a1 = 10; 이면 int를 long에 대입하는데 작은 자료형은 큰 자료형에 대입할 수 있음. 자동으로 형 변환이 일어난다.

long a2 = 2300000000; 를 넣으면 컴파일 오류가 생기는데, int형의 범위를 벗어나기 때문이다. int형은 4byte로 32비트로 표현할 수 있는 숫자가 대략 -21억~21억 이기 때문임. 

따라서 a2 = 2300000000L; 을 붙이면 long 리터널로 표현해야한다.

리터럴은 그 값이 한 번 정의되면 프로그램이 실행되는 도중에 변하지 않는 값을 말함.

 

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

0702_Ex05_DataType  (0) 2021.07.04
0702_Ex04_Literal  (0) 2021.07.04
0702_Ex02_Scanner.java  (0) 2021.07.04
0702_Ex01_Scanner.java  (0) 2021.07.03
0701_Java print문  (0) 2021.07.03

여기서는 nextLine 에 대해서 알아보았다.

nextline은 공백을 읽을 수 있다. 또, 엔터를 읽고 버리는 역할을 한다.  nextInt는 숫자를 입력 받는다.

따라서 위 코드를 실행했을때. 나이를 적고 엔터를 치면 생년월일 ? 을 묻는 질문에 엔터가 입력이 되는 것. 

이렇게 된다.

따라서 나이를 받은 후에 엔터를 입력받은 것을 버려주는 nextLine을 넣어주어야 한다. 

 

age = nextInt();

이 후에 엔터를 읽고 버려주는

sc = nextLine(); 을 써 넣어준다.

 

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

0702_Ex04_Literal  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04
0702_Ex01_Scanner.java  (0) 2021.07.03
0701_Java print문  (0) 2021.07.03
0701개강 첫 날_Java Print문  (0) 2021.07.02

+ Recent posts