자바 웹개발 국비과정/Java Programming

연산자, 제어문 (22.10.31)

FeelsKim 2022. 11. 14. 09:53

연산 (Operation) : 데이터를 처리하여 결과를 산출하는 것

*(변수, 타입, 연산자, 조건문, 반복문, 배열 등은 타 프로그램 언어와 유사)

 

연산자(Operator) : 연산을 하는 기호

피연산자(Operand) : 연산의 대상(항)

ex) 1 + 2 ⇒ 연산자 : +, 피연산자 : 1, 2

 

1. 단항 연산자

증감 연산자 => 반복문(for문)에 많이 사용

++

int i = 0;

i++; (1증가)

i—; (1감소)

i++; (선처리 후증가) // ex) println(i++); ⇒ 10

++i; (선증가 후처리) // ex) println(++i); ⇒ 11

i—; (선처리 후감소) // ex) println(i—); ⇒ 10

—i; (선감소 후처리) // ex) println(—i); ⇒ 9

 

2. 이항 연산자

1) 산술 연산자

 

    + (더하기)

    - (빼기)

    * (곱하기)

    / (나누기)

    % (나머지)

 

2) 대입 연산자 (연산결과를 변수에 대입하는 연산자)

 

(변수) = (대입할 데이터)

int num = 10;

  • Primitive type : 기본자료형 타입(8가지)

int num = 10; (실제 데이터값을 대입)

  • Referance type : 참조형(객체형) 타입 (String, 배열, Class, interface)

 

객체참조변수 - 대상 객체의 주소값을 저장 (실제 데이터값 x)

 

String str = new String(”userId”);

str.속성;

str.메소드();

⇒ new : 새로운 객체(Class)를 생성

⇒ . : 객체 접근 연산자

 

  • 복합 대입 연산자 (변수의 연산결과를 다시 그 변수에 넣음)

int num = 10;

num(저장공간) = num(참조값)+10; ⇒ num+=10;

+=

-=

*=

/=

%=

 

3)비교 연산자 ⇒ 두 항 중, 왼쪽을 기준으로 비교

 

연산의 결과인 반환값(리턴값)을 true, false 두 가지로 반환(return)

★조건문(if, switch)에 많이 사용

>

>=

<

<=

==

!=

*숫자+문자열의 ==, != 연산은 불가.

문자열 객체의 ==,!=은 .equals() 사용 (저장 위치가 아닌, 자료값으로 비교하기 때문)

ex) String strAge = “11”;

System.out.println(strAge.equals(”11”));

 

4) 논리 연산자 (&&, ||, ^, !) ⇒ return값 : boolean 타입

 

논리곱(AND. 모든 조건이 true일 때만 true)

 

조건1 && 조건2 결과

true true true

true false false

false true false

false false false

 

논리합(OR. 하나 이상의 조건이 true면 true)

 

조건1 || 조건2 결과

true true true

true false true

false true true

false false false

 

XOR(서로 다르면 true)

 

조건1 ^ 조건2 결과

true true false

true false true

false true true

false false false

 

부정(true와 false가 서로 반대)

⇒ 토글(toggle)에 사용 (같은 이벤트 적용시 반복적으로 뒤바뀜)

 

조건 ! 결과

!true false

!false true

 

5)조건 연산자

 

?

(조건식)?(조건이 true일 때 반환값):(조건이 true가 아닐 때 반환값);

*반환값의 타입에 맞춰 변수타입 입력

*조건연산자, 삼항연산자는 실무에서 많이 사용 (조건이 2개일때)

 

int result = 10>10?1:0;

>> if문으로 바꾸면..

if (10>10) {

System.out.println(1)

} else {

System.out.println(0)

}

 

6)비트 연산자 (2진수 true ⇒ 1, false ⇒ 0)

 

비트연산자는 10진수를 2진수로 변환하여 처리함

*Wrapper 클래스

integer.toBinaryString(int형 데이터);

>> int형 데이터를 2진수 문자열로 반환

 

7)쉬프트 연산자

 

2진수 코드에서 자리수를 이동하는 연산.

오른쪽 쉬프트 : 작아짐. 2^n

왼쪽 쉬프트 : 커짐. 2^n

 

3. 삼항 연산자

★★제어문(조건문) - 조건에 맞으면 true, 틀리면 false 반환

 

1. if문 (조건이 true일 때만 실행)

 

1) 조건이 1개일 경우 ⇒ 조건이 일치할 때만 실행

 

if (조건) {
	명령문;
}

 

또는

 

if(조건) 명령문;

 

 

 

2) 조건이 2개일 경우

if (조건) {
	명령문;
} else {      // 조건이 true를 제외한 나머지
	명령문;
}

 

3) 조건이 3개 이상일 경우

조건이 추가될 때마다 else if 추가

 

if (조건 1) {
	명령문;
} else if (조건 2) {
	명령문;
} else if (조건 3) {
	명령문;
} … {
} else {
	명령문;
}

 

2. switch문

변수에 대한 case값이 정형화 된 타입의 값. 하나의 결과를 반환

switch~case

 

ex) 로그인 시 key값에 따른 권한부여

switch(변수(설정값)) {
case “값1”: // 변수(설정값)가 1이면
	처리문;
	break; // switch문을 종료
case “값2”: // 변수(설정값)가 2이면
	처리문;
	break; // switch문을 종료
case “값3”: // 변수(설정값)가 3이면
	처리문;
	break; // switch문을 종료
default:
	나머지 처리문; // 어떤 case에도 해당되지 않을 때. else와 동일 (생략가능)
}

*case ⇒ case값은 정수형, 문자, 문자열 등 정형화된 타입의 단일한 자료 (if처럼 범위지정 불가)

모든 switch문을 if문으로 바꿀 수는 있지만, 모든 if문을 switch문으로 바꾸지는 못함)

 

*break ⇒ 해당지점을 기준으로 하위 명령문을 실행시키지 않고 코드블럭을 나옴

*continue ⇒ break와 반대. 해당 지점에서 하위 명령문을 실행하지 않고, 코드블럭 끝에서 다시 시작

'자바 웹개발 국비과정 > Java Programming' 카테고리의 다른 글

다차원배열 (22.11.04)  (0) 2022.11.14
배열 (22.11.03)  (0) 2022.11.14
반복문 (22.11.01)  (0) 2022.11.14
객체, 스캐너 (22.10.28)  (0) 2022.11.14
Java (22.10.27)  (0) 2022.11.08