Java 연산자, 조건문 & 반복문

이재현·2024년 7월 23일

Java

목록 보기
3/15

연산자

피연산자는 계산의 대상이 되는 것이고, 연산자는 계산의 목적이 되는 것을 의미한다.

피연산자: 2, 1, a, …
연산자: +, -, / , …

연산자의 종류

  • 산술 연산자: +, -, *, /, %(나머지), <<, >>
    산술 연산자는 두 피연산자의 타입을 같게 일치시킨다. (작은 쪽을 크게!)
int a = (1+9) % 2 * 5 / 2;
System.out.println(a);
// 출력값: 0
  • 비교 연산자: >, <, >=, <=, ==, !=
System.out.println(1<9);
System.out.println(2<>=3);
System.out.println(1!=9);
// 출력값: true, false, true
  • 논리 연산자: &&(and), ||(or), !(not)
boolean flag1 = true;
boolean flag2 = true;
boolean flag3 = false;
System.out.println(flag1 || flag2);
System.out.println(flag1 && flag2 && flag3);
// 출력값: true, false
  • 대입 연산자: =, ++, --, +=, -=, *=, /=, %=
int num = 10;
num = num++;
System.out.println(num);
num %= 3;
System.out.println(num);
// 출력값: 11, 2
  • 기타 연산자: (type), ? :, instance of
// 형 변환 연산자
int intNum = 91 + (int)9.3;
System.out.println(intNum);

// 삼항 연산자
int x = 9;
int y = 1;
boolean b = (x == y) ? true : false;
System.out.println(b);

// instance of
// 피연산자가 조건에 명시된 클래스의 객체인지 비교
  • 연산자 우선순위
    산술 > 비교 > 논리 > 대입
int x = 2;
int y = 9;
int z = 10;
boolean result = x < y && y < z;
System.out.println(result);
// 출력값: true

⭐ 비트 연산자

1 Byte를 8등분한게 1 Bit이다. Bit는 컴퓨터의 가장 작은 단위로서 0 또는 1이 들어가며, 가장 작기에 가장 빠른 연산이 된다.

비트 연산은 Bit의 자리수를 옮김으로써 연산을 하는 것을 의미한다.

<<, >>는 각각 왼쪽, 오른쪽으로 자리수를 옮기는 연산자이다.

<<, >>에 대해서 0, 1은 2진수값이기 때문에,

왼쪽으로 자리수를 옮기는 것은 횟수만큼 2의 배수로 곱셈이 연산되는 것과 동일하다.

  • 1010 <- 0101 = 10 <- 5, 3 << 2 = 12

오른쪽으로 자리수를 옮기는 것은 횟수만큼 2의 배수로 나눗셈이 연산되는 것과 동일하다.

  • 1010 -> 0101 = 10 -> 5, 2>>1 = 1



조건문

if 문

특정 조건에 따라 다른 연산을 수행하고 싶을 때 사용하는 표현이다.

기본 형태로 if(조건){연산} 의 형태로 사용한다.

if의 조건이 boolean값 true를 만족하면 연산을 수행한다.

if (1<10) {
	System.out.println(‘true입니다.’);
}

if – else 문

if문의 조건이 거짓일 경우 다른 연산을 수행하기 위해 else문을 사용한다.

if문의 조건이 boolean 값 false를 만족하면 else의 연산을 수행한다.

else문에도 if를 달아 여러 조건을 설정할 수도 있다.

int i = 1;
if (i==10) {
	System.out.println(‘i는 10입니다.’);
} else if(i==5) {
	System.out.println(‘i는 5입니다.’);
} else {
	System.out.println(‘i는 5, 10이 아닙니다.’);}

swtich/case 문

switch문은 case문과 함께 사용하는 조건문 표현으로 if문보다 좀 더 가독성이 좋은 표현식이다.

기본 형태는 swtich(피연산자) {case(조건): (연산)} 의 형태로 사용된다.

case문의 조건과 연산을 여러 개 설정할 수 있으며, 연산문의 끝에는 break;를 사용해야만 한다.

boolean flag1 = true;
switch (flag1) {
	case(true):
		System.out.println(“flag값은 true입니다.”);
break;
	case(false):
		System.out.println(“flag값은 false입니다.”);
		break;
	default:
		System.out.println(“flag값은 boolean값이 아닙니다.”);
		break;
}

if문과의 차이점으로는 if문 같은 경우에는 복합 조건을 지원한다는 점이다. (복합 조건이란 괄호 내에 여러 개의 조건을 지정하는 것을 의미한다.)

또한 if문의 경우에는 상대적으로 코드중복이 많지만, switch문은 코드 중복이 적다.

따라서 원하는 방향에 따른 조건 문법을 정해서 사용하면 된다.




반복문

for 문

특정 조건에 따라 연산을 반복해서 수행하고 싶을 때 사용하는 표현이다.

기본 형태로는 for(초기값; 조건문; 증가연산) {(연산)} 의 형태로 사용한다.

이때 특정 조건은 초기값과 조건문을 통해 정의하고, 반복할 때 마다 값을 증가시키려면 증가연산을 정의한다.

초기값이 조건문을 만족할 때까지 (연산)을 수행하며 회차마다 증가연산을 수행한다.

for (int i=0; i<5; i++) {
	System.out.println(i);
}
// 출력값: 0, 1, 2, 3, 4

while 문, do - while 문

for문과 동일하게 특정 조건에 따라 연산을 반복 수행하고 싶을 때 사용하는 표현이다.

다만, 초기값이 없이 조건문만 명시하여 반복한다. 기본 형태는 While(조건문) {(연산)} 의 형태이다.

한번 반복할 때마다 조건을 체크해서 불만족하다면 그때 반복을 중단한다.

int i = 0;
while (i<5) {
	System.out.println(i);
	i++;
}
// 출력값: 0, 1, 2, 3, 4

do-while문의 경우에는, 선 수행하는 문맥인 do가 존재한다.

while문의 경우 조건이 맞지 않는다면 반복문 내의 연산을 시작조차 하지 않지만, do while문의 경우에는 do로 처음 1회를 진행할 수 있다.

int i =4;
do {
System.out.println(i);
} while (i<3);

0개의 댓글