보안 전공생의 공부

변수와 자료형 / 조건문 & 반복문 / 연산자 본문

Language/JAVA

변수와 자료형 / 조건문 & 반복문 / 연산자

수잉 2021. 1. 15. 11:23

변수타입

1) primitive type : 기본적으로 제공되는 타입 → 초기값이 정해져 있음

- 정수형 : byte(1byte), short(2byte), int(4byte), long(8byte)

- 실수형 : float, double

- 문자형 : char

- 논리형 : boolean

자료형

데이터

크기

boolean

참과 거짓

1바이트

char

문자

2바이트

byte

정수

1바이트

short

정수

2바이트

int

정수

4바이트

long

정수

8바이트

float

실수

4바이트

double

실수

8바이트

(출처 : https://cishome.tistory.com/85)

2) reference type : 참조형(유저가 직접 정의하는 타입) → 기본 초기값 NULL

- 기본적으로 java.lang.object를 상속받으면 참조형이 된다.

- 참조형에는 클래스형 Class Type, 인터페이스형 Interface Type , 배열형 Array Type이 있다.

자세한 내용은 추후 포스팅 예정 !!

◆ 변수선언

변수타입 변수이름1 변수이름2;

변수타입 변수이름=초기값;

◆ 형변환

1) 묵시적 변환(implicit conversion) : 손실방지 위해 자동변환

byte → short → int → long → float → double

2) 명시적 변환 (explicit conversion)

[예제]

정수형인 a와 b를 나눈 값을 실수형인 result에 대입하였다.

예상결과는 1/10= 0.1 이지만

실제 출력결과는 0.0이다.

이는 result는 실수형인데

여기에 대입하는 a/b는 정수형이기 때문이다.

a/b도 실수형으로 바꿔주기 위해 앞에 (double)을 작성한다.

[예제]

출력결과가 0.1로 예상하던 결과가 출력됨을 확인할 수 있다.

◆조건문

· if(조건){

//조건이 참이면 실행

}

· if(조건){

}else if(조건){

}else (조건){ }

[예제] 영문자의 대소문자 구분하기

◆ 반복문

1) while(조건식){ };

조건식이 참일 경우 루프 실행됨

2) do{ }while(조건식);

조건식이 참이든 아니든 일단 루프가 한 번 실행됨

3) for(초기식; 조건식; 증감식){ };

4) continue

루프의 나머지 부분 생략

[예제] 1~100 수 중 2의 배수나 5의 배수 출력하기

5) break : 루프 탈출

[예제] 1~100의 수 더하기

◆ 연산자

종류

연산자

최우선

( ), [ ]

단항 연산자

++, --, +, -, (type), !, ~

산술 연산자

%, /, *, +, -

시프트 연산자

>>, <<, >>>

관계 연산자

<, <=, >, >=, ==, !=

논리 연산자

&, ^, |, ~, &&, ||

삼항 연산자

? :

대입 연산자

=, +=, -=, *=, %=, /=, >>=, <<=

콤마 연산자

,

(출처 : https://raccoonjy.tistory.com/9 )

▶ 시프트 연산자

- op1 >> op2 : op1을 op2만큼 오른쪽으로 이동

- op1 << op2: op1을 op2만큼 왼쪽으로 이동

- op1 >>> op2 (자바에만 있는 연산자 !) : op1을 op2만큼 오른쪽으로 이동하면서 왼쪽에는 항상 부호와 무관하게 0을 채움

ex) int a = 10 일 때 ( 2진수로 1010 )

a = a << 2 를 계산해보면,

( int형은 4 byte로 32 bit 이다 )

연산 전 a = 0000 0000 0000 0000 0000 0000 0000 1010 (10)이다.

연산 후 a = 0000 0000 0000 0000 0000 0000 0010 1000 (40)이다.

→ 왼쪽으로 밀린 2개의 비트는 삭제되고, 비게되는 오른쪽 2개의 비트는 0으로 채운다

40이 된 a를 다시 되돌리려면 a=a>>2를 하면된다.

연산 전 a = 0000 0000 0000 0000 0000 0000 0010 1000 (40)이다.

연산 후 a = 0000 0000 0000 0000 0000 0000 0000 1010 (10)이다.

→ 오른쪽으로 밀린 2개의 비트는 삭제되고, 비게되는 왼쪽 2개의 비트는 0으로 채운다 ( 양수일 때 0이 사용되고, 음수일 때 1이 사용됨 !! >>>은 부호 상관없이 무조건 0으로 채움)

Comments