230717 TIL Chapter 4. 연산자 (Operator) , 제어문 중 조건문 ( if )

최규연·2023년 7월 17일
0

TIL

목록 보기
4/57

오늘은 연산자

연산자를 나가기 이전에 이제부터 새로운 프로젝트를 만들때 패키지 하나에 메인메서드 클래스 하나(코드 실행용 클래스)와 예제 코드 작성용 클래스 하나를 만들어 예제 코드 작성용에서 코드들을 정리하고 코드 실행용 클래스에서 불러다가 실행을 하는것을 처음 배웠다.

연산자 Operator

연산자엔 다양한 종류가 있는데 우리가 아는 수학과 마찬가지로 컴퓨터도 연산의 우선순위가 정해져 있는데 우선순위는 다음 사진과 같다.

이 표를 참고하여 증감 연산자부터 정리해보겠다.


증감 연산자

증감 연산자란 피연산자 (값)을 1 증가시키거나 감소시키는 연산자로 전위연산과 후위연산으로 나눌 수 있다.

int i1 = 1;
int i2 = 2;

i1++; // i1을 1증가
i2--; // i2를 1감소

전위 연산

전위 연산은 ++1 , --1 과 같이 연산자가 앞쪽에 배치되고 다른 연산자보다 먼저 증가, 감소한다.

int i1 = 5
System.out.println( ++i1 + 5 ); // 답 : 5
// ++5 + 5
// -> 6 + 5 == 11

후위 연산

후위 연산은 1++ , 1-- 와 같이 연산자가 뒷쪽에 배치되고 다른 연산자보다 나중에 증가, 감소한다.

int i2 = 3;
System.out.println( i2-- + 2 ); // 답 : 5
// 3-- + 2
// 이후 i2에서 1 감소
// i2는 2
System.out.println(" i2 : " + i2 ); // 출력값 : i2 : 2

비교 연산자

비교 연산자의 종류

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

비교 연산자의 결과는 항상 논리값( true / false )이고 등호( = )가 포함된 연산자에서 등호는 항상 오른쪽에 위치한다.

같다 기호는 = 이 아닌 ==이다
int a = 10;
int b = 20;
		
System.out.println( a > b ); // false
System.out.println( a < b ); // true
System.out.println( a != b ); // true
System.out.println( (a==b) == false ); // true
// () 괄호 안에 있는 것 먼저 연산
// false == false 는 true

논리 연산자

논리 연산자는 &&(AND) 와 \\(OR) 두가지가 있고
&&(AND)는 둘 다 true면 true, 나머지는 false
\\(OR)은 둘 다 false면 false, 나머지는 true로 &&(AND)의 반대이다.

int a = 101;
		
// a는 100 이상인가?
System.out.println( a >= 100 ); // a는 100 이상? ture
		
// a는 짝수인가?
System.out.println( a % 2 == 0 ); // a는 짝수 ? false
		
// a는 100이상 ' 이면서 ' 짝수인가?
System.out.println( ( a >= 100) && ( a % 2 == 0)); // false

논리 부정 연산자

논리 부정 연산자는 ! 이고 논리값을 반대로 바꾸는 연산자이다.

boolean bool1 = true;
boolean bool2 = !bool1; // false

복합 대입 연산자

복합 대입 연산자의 종류

+= , -= , *= , /= , %=

복합 대입 연산자는 피연산자가 자신과 연산 후 결과를 다시 자신에게 대입.

int a = 10;
		
// a를 1증가
a++; // a = a + 1 , a += 1
System.out.println("a를 1 증가 : " + a ); // 11
		
// a를 4증가
a += 4; // a = a + 4
System.out.println("a를 4 증가 : " + a ); // 15
		
// a를 10감소
a -= 10; // a = a - 10;
System.out.println("a를 10 감소 : " + a ); // 5
		
// a를 3배 증가
a *= 3;
System.out.println("a를 3배 증가 : " + a ); // 15
		
// a를 6으로 나눴을때 몫
a /= 6;
System.out.println("a를 6으로 나눴을때 몫 : " + a ); // 2
		
// a를 2로 나눴을때 나머지
a %= 2;
System.out.println("a를 2로 나눴을때 나머지 : " + a ); // 0

삼항 연산자

삼항 연산자 작성법

조건식 ? 식1(참일때) : 식2(거짓일때)
조건식은 연산 결과가 true/false인 식으로 비교 , 논리 , 논리부정 연산이 포함된다.
String result = num > 30 ? " num은 30 보다 큰 수 이다. " : " num은 30이하의 수이다. ";
//				조건식   ?		식1 (true일때)			 :  식2(false일때)

조건문

조건문이란 프로그램 수행 흐름을 바꾸는 역할을 하는 제어문으로 하나의 조건에 따라 다른 문장이 수행되도록 한다.

조건문의 종류엔 if 와 switch가 있는데 오늘은 if까지 배웠기에 if만 보겠다.

if문

if문 작성법

if(조건식){
조건식이 true 일 때 수행 할 코드
}

if문은 조건식 결과 값이 true일때 if문 내부의 코드가 실행되고 false일땐 실행되지 않는다.

if ~ else문

if ~ else문 작성법

if(조건식) {
조건식이 ture일 때 수행될 코드
} else {
조건식이 false일 때 수행될 코드
}

if ~ else문은 조건식의 결과 값이 true면 if 내의 코드가 false면 else 내의 코드가 실행된다.

if ~ else if ~ else문

if ~ else if ~ else문 작성법

if(조건식1) {
조건식1 true일 때 수행
} else if(조건식2) {
조건식2 true일 때 수행
} else {
모두 false 일 때 수행
}

조건식1의 결과 값이 true면 if문 내의 코드를 실행하고 조건식2의 결과 값이 true면 else if 내의 코드를 실행한다 , 모두 false이라면 else 내의 코드를 수행한다.

참고!
if는 true, false와 상관없이 조건절을 실행하고 if ~ else if ~ else는 조건문이 true면 이후 조건들은 실행하지 않음!!!

중첩 if문

if (조건식1) {
		if (조건식2) {
			if (조건식3) {
			수행될 코드;
		} else if (조건식4) {
			수행될 코드;
		} else {
			수행될 코드;
		}
	} else {
		수행될 코드;
	}
} else if (조건식5) {
	수행될 코드;
} else {
	수행될 코드;
}

if문 안에 if문 안에 if ~ else문처럼 다양하게 활용이 가능하고 조건식에 어떤 조건을 넣을지 true, false를 생각하면서 프로그램 수행의 흐름을 제어할 수 있다!!!

2개의 댓글

comment-user-thumbnail
2023년 7월 18일

글이 잘 정리되어 있네요. 감사합니다.

1개의 답글