본문 바로가기

백엔드개발자 준비하기

[백엔드개발자 준비하기] 연산자

[연산자]
-항의 갯수에 따라 단항 연산자, 이항 연산자, 삼항 연산자로 나뉨
-연산을 하게 되면 항상 결과가 존재한다
-삼항연산자는 조건에 대한 참과 거짓을 판별함
-대입연산자 : 변수에 값을 대입하는 연산자 
-부호연산자 : 양수 음수를 사용하기 위해 +, - 사용
-산술연산자 : 사칙연산과 나머지를 구하는 연산자
-나누기 연산할 때 정수와 정수를 연산하면 정수로 된 몫만 나오지만 실수와 정수, 실수와 실수를 연산하면 소수점까지 나옴
-증감연산자 : ++, -- 를 사용하여 항의 값에 1을 더하거나 뻼
-증감연산자를 앞에 붙이면 연산을 먼저 하고 다음으로 넘어감 : 선증가, 선감소
-증감연산자를 뒤에 붙이면 같은 줄에 있는 다른 명령을 먼저 수행하고 연산을 진행함 : 후증가, 후감소
-관계연산자(ppt참고) : 연산의 결과는 결국 참, 거짓이기 때문에 조건문에 사용
-논리연산자 : 0과1을 가지고 참과 거짓을 계산하는 것
-논리계산에서는 0이 아니면 무조건 참
-AND 연산에서는 모두 참이어야 참, 하나라도 거짓이면 거짓
-OR 연산에서는 하나만 참이이도 참, 둘다 거짓이어야 거짓
-NOT 연산에서는 참이면 거짓, 거짓이면 참
-복합 대입 연산자 : +=, -= 등등 자기 자신에 연산을 하는 연산자
-조건연산자 -> 조건식 ? 결과1 : 결과2, 조건식이 참이면 결과1을 반환 거짓이면 결과2를 반환
-조건연산자에서 결과1 과 결과2는 같은 자료형이어야 함 

 

[예시1]

int add = 1 + 2;
int sub = 10 - 5;
int mul = 10 * 2;
int div = 10 / 4;
int remainder = 10 % 5;

System.out.println(add);
System.out.println(sub);
System.out.println(mul);
System.out.println(div);
System.out.println(remainder);
		
// 삼항연산자 예시
System.out.println(remainder == 0 ? "5의 배수이다" : "5의 배수가 아니다");

 

[예시2]

int num = 10;
num = num + 1;

System.out.println(num++);
System.out.println(num++);
System.out.println(num);

 

[예시3]

int num = 11;
		
boolean flag1 = true;
boolean flag2 = true;
boolean flag3 = num % 2 == 0;
		
System.out.println(flag1 && flag2);
System.out.println(flag1 && flag3);
System.out.println(!(flag2 || flag3 && flag1));

 

[예시4]

int num = 100;

num = num + 1;

num += 100;

System.out.println(num);

 

[예시5]

int num1 = 10;
int num2 = 0;

int result = num1 > num2 ? num1 * -1 : num2 * -1;
		
System.out.println(result);
		
int num = 79;
		
// 조건을 일일이 확인해가며 다음항으로 넘어감
// 조건이 여러개일 경우 다음줄로 넘겨서 작성
int result2 = num / 90 == 1 ? 90
		: num / 80 == 1 ? 80 
		: num / 70 == 1 ? 70 : 0;

System.out.println(result2);

 

[예시6]

		/*
		 * 시험 성적을 학점으로 계산하는 프로그램
		 * 
		 * 정수자료형 score변수 선언 88점으로 초기화
		 * 
		 * 문자자료형 grade변수 선언
		 * 
		 * 조건 score가 0점보다 작거나 100점보다 크면 X를 출력 score가 90 ~ 100점이면 A학점 score가 80 ~ 89점이면
		 * B학점 score가 70 ~ 79점이면 C학점 score가 60 ~ 69점이면 D학점 score가 0 ~ 59점이면 F학점
		 * 
		 * System.out.println("점수(88) : B학점");
		 */

		int score = 100;
//		int sRem;

		String grade1 = (score < 0) || (score > 100) ? "X"
				: score > 94 ? "A+" 
				: score > 89 ? "A" 
				: score > 84 ? "B+" 
				: score > 79 ? "B" 
				: score > 74 ? "C+" 
				: score > 69 ? "C" 
				: score > 64 ? "D+"
				: score > 59 ? "D" : "F";
				
				
		System.out.println("점수(" + score + ") : " + grade1 + "학점");

		
				
//		char puls1 = (sRem = score % 10) > 4 ? '+' : '\0';
		
		char puls = score > 100 || score < 60 ? '\0' 
				: score % 10 > 4 || score == 100 ? '+' : '\0';
		
		char grade = (score < 0) || (score > 100) ? 'X'
				: score > 89 ? 'A'
				: score > 79 ? 'B' 
				: score > 69 ? 'C' 
				: score > 59 ? 'D' : 'F';
				
		
		System.out.println("점수(" + score + ") : " + grade + puls + "학점");