본문 바로가기
자바 풀스택 공부

Day 6.

by seung_nari 2022. 1. 6.

1. 단항 연산자

증감연산자는 피연산자에 저장된 값을 1 증가 또는 감소시킨다. 증감연산자의 피연산자로 정수와 실수가 모두 가능하지만, 상수는 값을 변경할 수 없으므로 가능하지 않다.

 

증가 연산자(++) : 피연산자의 값을 1 증가시킨다.

감소 연산자(--) : 피연산자의 값을 1 감소시킨다.

 

일반적으로 단항 연산자는 피연산자의 왼쪽에 위치하지만, 증가 연산자 '++'와 감소 연산자 '--'는 양쪽 모두 가능하다. 피연산자의 왼쪽에 위치하면 '전위형(prefix)', 오른쪽에 위치하면 '후위형(postfix)'이라고 한다.

 

타입 설명 사용예
전위형 값이 참조되기 전에 증가시킨다. j = ++i;
후위형 값이 참조된 후에 증가시킨다. j = i++;

 

public class OperatorEx1 {
	public static void main(String[] args) {
		int i = 5;
		i++;
		System.out.println(i);
		
		i = 5;
		++i;
		System.out.println(i);
	}
}


2. 산술 연산자

2.1 사칙 연산자 + - * /

 

피연산자가 정수형인 경우, 나누는 수로 0을 사용할 수 없다. 만일 0으로 나눈다면, 실행 시에 에러가 발생할 것이다.

 

public class OperatorEx5 {
	public static void main(String[] args) {
		int a = 10;
		int b = 4;
		
		System.out.printf("%d + %d = %d\n", a, b, a + b);
		System.out.printf("%d - %d = %d\n", a, b, a - b);
		System.out.printf("%d * %d = %d\n", a, b, a * b);
		System.out.printf("%d / %d = %d\n", a, b, a / b);
		System.out.printf("%d / %f = %f\n", a, (float)b, (float)a / b);
		
		// 두 정수를 입력 받아 사칙연산 결과를 출력하시오.
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("두 정수를 입력해주세요.");
		
		System.out.print("첫번째 수를 입력하세요. > ");
		a = Integer.parseInt(sc.nextLine()); 	
		System.out.print("두번째 수를 입력하세요. > ");
		b = Integer.parseInt(sc.nextLine());
		
		System.out.printf("%d + %d = %d\n", a, b, a + b);
		System.out.printf("%d - %d = %d\n", a, b, a - b);
		System.out.printf("%d * %d = %d\n", a, b, a * b);
		System.out.printf("%d / %d = %d\n", a, b, a / b);
		System.out.printf("%d / %f = %f\n", a, (float)b, (float)a / b);
	}
}

 

2.2 나머지 연산자

 

나머지 연산자는 왼쪽의 피연산자를 오른쪽 피연산자로 나누고 난 나머지 값을 결과로 반환하는 연산자이다. 그리고 나눗셈에서처럼 나누는 수(오른쪽 피연산자)로 0을 사용할 수 없다는 점에 주의하자. 나머지 연산자는 주로 짝수, 홀수 또는 배수 검사 등에 주로 사용된다.

 

public class OperatorEx19 {
	public static void main(String[] args) {
		int x = 10;
		int y = 8;
		
		System.out.printf("%d을 %d로 나누면, \n", x, y);
		System.out.printf("몫은 %d이고, 나머지는  %d입니다. \n", x/y, x%y);
	}
}


3.  비교 연산자

비교 연산자는 두 피연산자를 비교하는 데 사용되는 연산자다. 주로 조건문과 반복문의 조건식에 사용되며, 연산결과는 오직 true와 false 둘 중의 하나이다.

 

비교 연산자 역시 이항 연산자이므로 비교하는 피연산자의 타입이 서로 다를 경우에는 자료형의 범위가 큰 쪽으로 자동 형변환하여 피연산자의 타입을 일치시킨 후에 비교한다는 점에 주의하자.

 

대소비교 연산자 <  >  <=  >=

비교연산자 연산결과
> 좌변 값이 크면, true 아니면 false
< 좌변 값이 작으면, true 아니면 false
>= 좌변 값이 크거나 같으면, true 아니면 false
<= 좌변 값이 작거나 같으면, true 아니면 false

 

등가비교 연산자 ==  !=

비교연산자 연산결과
== 두 값이 같으면, true 아니면 false
!= 두 값이 다르면, true 아니면 false

 

public class Operation22 {
	public static void main(String[] args) {
		float	f	= 0.1f;
		double	d	= 0.1;
		double	d2	= (double)f;
		
		System.out.printf("10.0==10.0f	%b\n", 10.0 == 10.0f);
		System.out.printf("0.1==0.1f	%b\n", 10.0 == 10.0f);
		System.out.printf("f  = %19.17f\n", f);
		System.out.printf("d  = %19.17f\n", d);
		System.out.printf("d2 = %19.17f\n", d2);
		System.out.printf("d==f	%b\n", d==f);
		System.out.printf("d==d2	%b\n", d==d2);
		System.out.printf("d2==f	%b\n", d2==f);
		System.out.printf("(float)d==f	%b\n", (float)d==f);
	}
}

4.  논리 연산자

논리 연산자는 둘 이상의 조건을 '그리고(AND)'나 '또는(OR)'으로 연결하여 하나의 식으로 표현할 수 있게 해준다.

 

|| (OR결합) : 피현산자 중 어느 한 쪽만 true 이면 true를 결과로 얻는다.

&& (AND결합) : 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다.

 

논리 연산자의 피연산자가 '참(true)인 경우'와 '거짓(false)인 경우'의 연산결과를 표로 나타내면 다음과 같다.

x y x || y x && y
true true true true
true false true false
false true true false
false false false false

 

예제

public class OperatorEx24 {
	public static void main(String[] args) {
		int x = 0;
		char ch = ' ';
		
		x = 15;
		System.out.printf("x = %2d, 10 < x && x < 20 = %b\n", x, 10 <x && x < 20);
		
		x = 6;
		System.out.printf("x = %2d, x%%2==0 || x%%3 == 0 && x%%6!=0 =%b\n", x, x%2==0 || x%3 == 0 && x%6!=0);
		
		System.out.printf("x = %2d, (x%%2==0 || x%%3 == 0) && x%%6!=0 =%b\n", x, (x%2==0 || x%3 == 0) && x%6!=0);
		
		ch = '1';
		System.out.printf("ch = '%c', ch >= '0' && ch <= '9' = %b\n", ch, ch >= '0' && ch <= '9');

		ch = 'a';
		System.out.printf("ch = '%c', ch >= 'a' && ch <= '9' = %b\n", ch, ch >= 'a' && ch <= 'z');
		
		ch = 'A';
		System.out.printf("ch = '%c', ch >= 'A' && ch <= '9' = %b\n", ch, ch >= 'A' && ch <= 'Z');
		
		ch = 'q';
		System.out.printf("ch = '%c', ch == 'q' || ch == 'Q' = %b\n", ch, ch == 'q' || ch == 'Q');
	}
}

실행결과

 

 

'자바 풀스택 공부' 카테고리의 다른 글

Day 8.  (0) 2022.01.10
Day 7.  (0) 2022.01.10
Day 5.  (0) 2022.01.06
Day 4.  (0) 2022.01.04
Day 3.  (0) 2022.01.04

댓글