-
Java Study [2022-07-28] - Java 기초(연산자, 반복문 등)백엔드 2022. 7. 29. 23:28
📌 Java Study
🔸 2022-07-28 목요일
[Java 기초]
1. 연산자(대입, 부호, 산술, 복합대입, 증감)
- 항(Operand) : 연산에 사용되는 값
- 연산자(Operator) : 항을 이용하여 연산하는 기호
연산자 설명 연산 예 단항 연산자
항이 한 개 연산자 ++num 이항 연산자
항이 두 개 연산자 num1 + num2; 삼항 연산자
항이 세 개 연산자 (5 > 3) ? 1 : 0; - 대입 연산자 : 왼쪽 변수의 값이 오른쪽에 대입(우선 순위 가장 낮음)
int age = 20;
- 단항 연산자 : 변수의 부호를 유지 하거나(+) 바꿈(-)
- 실제 변수 값이 변하려면 대입 연산자를 사용해야 함
- 산술 연산자
연산자 기능 연산 예 +
두 항을 더합니다. 5 + 3 -
앞에 있는 항에서 뒤에 있는 항을 뺍니다. 5 - 3 *
두 항을 곱합니다. 5 * 3 /
앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구합니다. 5 / 3 %
앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구합니다. 5 % 3 - 복합 대입 연산자 : 대입 연산자와 다른 연산자가 함께 쓰임
연산자 기능 연산 예 +=
두 항의 값을 더해서 왼쪽 항에 대입합니다. num1 += 2; -=
왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입합니다. num1 -= 2; *=
두 항의 값을 곱해서 왼쪽 항에 대입합니다. num1 *= 2; /=
왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입합니다. num1 /= 2; %=
왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입합니다. num1 %= 2; 연산자 기능 연산 예 <<=
비트를 왼쪽으로 이동하고 그 값을 왼쪽 항에 대입합니다. num1 <<= 2; >>=
비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입합니다. num1 >>= 2; >>>=
비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입합니다. num1 >>>= 2; &=
두 항의 & 비트 연산 후 그 값을 왼쪽 항에 대입합니다. num1 &= num2; ㅣ=
두 항의 ㅣ 비트 연산 후 그 값을 왼쪽 항에 대입합니다. num1 ㅣ= num2; ^=
두 항의 ^ 비트 연산 후 그 값을 왼쪽 항에 대입합니다. num1 ^= num2; - 증가, 감소 연산자 : 변수의 값을 1 더하거나 뺄 때 사용
연산자 기능 연산 예 ++
항의 값에 1을 더합니다. val = ++num or num++; --
항의 값에서 1을 뺍니다. val = --num or num--; 2. 연산자(관계, 논리, 조건, 비트)
- 관계 연산자 : 연산의 결과가 true / false 로 반환됨(= 비교 연산자)
연산자 기능 연산 예 >
왼쪽 항이 크면 참을, 아니면 거짓을 반환합니다. num > 3; <
왼쪽 항이 작으면 참, 아니면 거짓을 반환합니다. num < 3; >=
왼쪽 항이 오른쪽 항보다 크거나 같으면 참, 아니면 거짓을 반환합니다. num >= 3; <=
왼쪽 항이 오른쪽 항보다 작거나 같으면 참, 아니면 거짓을 반환합니다. num <= 3; ==
두 개 항의 값이 다르면 참, 아니면 거짓을 반환합니다. num == 3; !=
두 개 항이 다르면 참, 아니면 거짓을 반환합니다. num != 3; - 논리 연산자 : 관계 연산자와 함께 많이 사용됨, 연산의 결과가 true / false 로 반환됨
연산자 기능 연산 예 &&(논리 곱)
두 항이 모두 참인 경우에만 결과 값이 참입니다. 아니면 거짓입니다. booleanval = (5>3) && (5>2); ㅣㅣ(논리 합)
두 항 중 하나의 항만 참이면 결과는 참입니다. 모두 거짓이면 결과는 거짓입니다. booleanval = (5>3) ㅣㅣ (5>2); !(부정)
단항 연산자입니다. 참의 경우는 거짓으로, 거짓인 경우는 참으로 바꿉니다. val = booleanval = !(5>3); - 단락 회로 평가
- 논리 곱(&&)은 두 항이 모두 true 일 때만 결과가 true
- 앞의 항이 false 이면 뒤 항의 결과를 평가하지 않아도 false 임
- 논리 합(ㅣㅣ)은 두 항이 모두 false 일 때만 결과가 false
- 앞의 항이 true 이면 뒤 항의 결과를 평각하지 않아도 true 임
- 논리 곱(&&)은 두 항이 모두 true 일 때만 결과가 true
- 삼항 연산자 : 해당 조건식이 참이면 결과1, 거짓이면 결과2 반환
조건식 ? 결과1 : 결과2; int num = (5 > 3) ? 10 : 20; // 10
- 비트 연산자
연산자 설명 예 ~
비트의 반전(1의 보수) a = ~a; &
비트 단위 AND 1 & 1, 1 반환 그 외는 0 ㅣ
비트 단위 OR 0 ㅣ 0, 0 반환 그 외는 1 ^
비트 단위 XOR 두 개의 비트가 서로 다른 경우에 1을 반환 <<
왼쪽 shift a << 2 변수 a를 2비트 만큼 왼쪽으로 이동 >>
오른쪽 shift a >> 2 변수 a를 2비트 만큼 오른쪽으로 이동 >>>
오른쪽 shift >> 동일한 연산, 채워지는 비트가 부호와 상관 없이 0 - 마스크 : 특정 비트를 가리고 몇 개의 비트 값만 사용할 때
- 비트 켜기 : 특정 비트들만을 1로 설정해서 사용하고 싶을 때 (&00001111, 하위 4비트 중 1인 비트만 꺼내기)
- 비트 끄기 : 특정 비트들만을 0으로 설정해서 사용하고 싶을 때 (&11110000, 하위 4비트 중 0인 비트만 꺼내기)
- 비트 토글 : 모든 비트들을 0은 1로, 1은 0으로 바꾸고 싶을 때
- 조건문(if 문)
if(조건식) { 수행문; } if(조건식) { 수행문 1; } else { 수행문 2; }
- switch-case 문 : 조건이 정수, 문자열 값으로 그 값에 따라 수행 결과가 달라지는 경우, if-else if - else와 같은 의미로 수행
if (rank == 1) { medalColor = 'G'; } else if(rank == 2) { medalColor = 'S'; } else if(rank == 3) { medalColor = 'B'; } else { medalColor = 'A'; }
switch(rank) { case 1 : medalColor = 'G'; break; case 2 : medalColor = 'S'; break; case 3 : medalColor = 'B'; break; default : medalColor = 'A'; }
- 자바 7부터 조건에 문자열 사용 가능
switch(medal) { case "Gold" : System.out.println("금메달"); break; case "Silver" : System.out.println("은메달"); break; case "Bronze" : System.out.println("동메달"); break; default : System.out.println("메달이 없습니다."); }
- 아래 예제 처럼 수행문이 동일한 경우 다른 케이스를 묶어서 코드 작성 가능
switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day = 31; break; case 2: day = 28; break; case 4: case 6: case 11: day = 30; break; default: System.out.println("Error"); day = 0; }
- 제어문(반복문) : 동일한 수행문을 조건에 맞는 동안 수행하도록 하는 기능
- while 문 : 조건이 참인 동안 수행문이 반복해서 수행됨
- do-while 문 : 먼저 수행문을 수행하고 조건 체크, 한 번 이상 수행문이 수행되어야 하는 경우 사용
- 둘의 차이를 쉽게 말해서 while 문은 조건이 맞아야 수행, do-while 문은 수행문을 일단 수행하고, 조건을 뒤에서 체크
- 제어문(for 문) : 반복문 중 가장 많이 사용됨, 일정 횟수에 기반한 반복을 구현할 때 효율적
for (초기화식; 조건식; 증감식) { 수행문; }
int count = 1; int sum = 0; for(int i = 0; i < 10; i++, count++) { // 10 번 sum += count; }
반복문 수행 쓰임 while 문
조건이 참인 동안 반복 수행, 맞지 않으면 수행 x 조건식 결과나 변수가 true, false 값인 경우 주로 사용 do-while 문
조건이 참인 동안 반복 수행 수행, 수행문 먼저 수행 후 조건 체크 조건식 결과나 변수가 true, false 값인 경우 주로 사용 for 문
초기화, 조건체크, 증감 순으로 수행 특정 수의 범위, 횟수와 관련하여 반복되는 경우 주로 사용, 배열과 함께 많이 사용 - 중첩 반복문 : 반복문이 중첩되어 구현되는 경우
- 반복문 내부에 또 다른 반복문이 있음, 외부 및 내부 반복문 간의 변수 값 변화에 유의하며 구현해야 함
- 제어문(break문, continue 문)
- break 문 : 감싸고 있는 블록의 제어를 빠져나오는 기능
- 반복문, 조건문, switch-case 등과 같이 쓰이며 현재 수행하고 있던 블록에서 수행을 중지하고 외부로 제어가 이동
- 반복문과 같이 사용하면 특정 조건일 때 반복을 중지하는 기능을 구현 가능
- continue 문 : 반복의 수행 중 조건문과 조건이 맞는 경우 이후 블록 내부의 다른 수행문을 수행하지 않음
🔖 Eclipse 실습
'백엔드' 카테고리의 다른 글
Java Study [2022-08-01] - 객체지향프로그래밍(생성자, 참조 자료형) (0) 2022.08.02 Java Study [2022-07-31] - 자바 기초 보충(자바의 정석) (0) 2022.08.01 Java Study [2022-07-30] - 클래스와 객체 예제 (0) 2022.07.30 Java Study [2022-07-29] - 객체지향 프로그래밍과 클래스(객체, 메서드 등 용어 정리) (0) 2022.07.30 Java Study [2022-07-27] - Java 기초 (0) 2022.07.29