(Java programming) 연산자

soosoorim·2024년 2월 14일
0
  • Java가 지원하는 연산자의 종류

할당 연산자

산술 연산자

public static void main(String[] args) {
    int number = 10;
    int addedNumber = number + 2;
    System.out.println(addedNumber);
    
    int subtractedNumber = number - 3;
    System.out.println(subtractedNumber);
    
    int multipliedNumber = number * 3;
    System.out.println(multipliedNumber);
    
    int devidedNumber = number / 3;
    System.out.println(devidedNumber);
    
    int devideRemainNumber = number % 3;
    System.out.println(devideRemainNumber);
}
  • 스스로에게 연산하기
public static void main(String[] args) {
    int number1 = 10;
    number1 = number1 + 2;
    System.out.println(number1); // 12
    int number2 = 10;
    number2 = number2 - 2;
    System.out.println(number2); // 8
    int number3 = 10;
    number3 = number3 * 2;
    System.out.println(number3); // 20
    int number4 = 10;
    number4 = number4 / 4;
    System.out.println(number4); // 2
    int number5 = 10;
    number5 = number5 % 4;
    System.out.println(number5); // 2
}

복합 산술연산자

public static void main(String[] args) {
    int number = 10;
    int computedNumber1 = number + 3 - 1 * 3 / 3 % 3;
    System.out.println(computedNumber1); // 12
    int computedNumber2 = (number + (3 - 1)) * 3 / 5 % 3;
    System.out.println(computedNumber2); // 1
}

연산 우선 순위 (PEMDAS)

단항 연산자

  • 산술연산자 – 스스로에게 연산하기
public static void main(String[] args) {
    int number1 = 10;
    number1 = number1 + 2;
    System.out.println(number1);
}

위 코드와 완벽하게 일치하는 코드

public static void main(String[] args) {
    int number1 = 10;
    number1 += 2;
    System.out.println(number1);
}
  • 산술연산자 – 스스로에게 연산하기를 단항연산자로 하기
public static void main(String[] args) {
    int num = 10;
    num += 2; // num = num + 2;
    num -= 2; // num = num - 2;
    num *= 2; // num = num * 2;
    num /= 2; // num = num / 2;
    num %= 2; // num = num % 2;
}
  • 산술연산자 – 스스로에게 1을 더하거나 뺄 때
public static void main(String[] args) {
    int num = 10;
    num += 1;
    num -= 1;
}
이것을 아래처럼 줄일 수 있다.

public static void main(String[] args) {
    int num = 10;
    num++;
    num--;
}

단 ++, -- 연산자는 위치에 따라 선/후 수행 처리를 한다!

  • 연습문제
public class ArtithmaticProblem {
	public static void main(String[] args) {
		int minutes = 5;
		int seconds = 50;
		int time = 0;
		
		time = (minutes * 60) + seconds;
		System.out.println(time);
		
		/*
		 *이게 더 좋은 방법
		time = minutes * 60;
		time += seconds;
		*/
	}

}

public class ArtithmaticProblem2 {
	public static void main(String[] args) {
		int promissTime = 145;
		int minutes = 0;
		int seconds = 0;
		
		minutes = promissTime / 60;
		System.out.println(minutes + "분 ");
		
		seconds = promissTime % 60;
		System.out.println(seconds + "초");
				

	}

public class ArtithmaticProblem3 {
	public static void main(String[] args) {
		int celsius = 30;
		int fahrenheit = 0;
		
		fahrenheit = (celsius * 9 / 5) + 32;
		System.out.println(fahrenheit);//86

	}

}

비교 연산자

  • 비교연산자의 결과는 항상 불린(boolean)이다.

  • 자바는 순서대로 진행 되기 때문.
  • 이렇게 쓰고 싶으면 논리연산자 사용해야 한다.

논리 연산자

논리 연산자의 피연산자는 항상 불린이며 논리 연산의 결과도 불린이다.

논리 연산자 상세 비교

and 연산 간단한 예제

public static void main(String[] args) {
    boolean and = true && true;
    System.out.println(and); // true
    
    and = true && false;
    System.out.println(and); // false
    
    and = false && true; // dead code
    System.out.println(and); // false
    
    and = false && false; // dead code
    System.out.println(and); // false
}

|| 연산 간단한 예제

public static void main(String[] args) {
    boolean or = true || true; // dead code
    System.out.println(or); // true
    or = true || false; // dead code
    System.out.println(or); // true
    or = false || true;
    System.out.println(or); // true
    or = false || false;
    System.out.println(or); // false
}

! 연산 간단한 예제

public static void main(String[] args) {
    boolean not = !true;
    System.out.println(not); // false
    not = !false;
    System.out.println(not); // true
}

! 연산자는 불린의 결과를 부정하는 연산자 이며,
String 연산에서 자주 사용된다.

비교연산자와 논리연산자 동시 사용
논리연산자만 이용해서 비교하는 경우는 없다.
연산의 결과가 불린인 경우는 모두 논리연산이 가능하다.

  • 산술 -> 비교 -> 논리 순서로 적용
public static void main(String[] args) {
    int a = 10;
    // 변수 a의 값이 10보다 크고 20보다 작은가?
    boolean is11To19 = a > 10 && a < 20;
    System.out.println(is11To19);
    int b = 345795;
    // 변수 b는 짝수인가?
    boolean isEven = b % 2 == 0;
    System.out.println(isEven);
    int c = -345796;
    // 변수 c는 0보다 큰 짝수인가?
    boolean isEven2 = c > 0 && c % 2 == 0;
    System.out.println(isEven2);
}
public static void main(String[] args) {
    int d = 35;
    // 변수 d의 값은 2 또는 5의 배수인가?
    boolean isMultiple2Or5 = d % 2 == 0 || d % 5 == 0;
    System.out.println(isMultiple2Or5);
    int son = 7;
    int parent = 40;
    // son은 부모님과 함께 12세 이상 관람과의 영화를 볼수 있나?
    boolean isAvailable = son >= 12 || parent >= 12;
    System.out.println(isAvailable);
}
public static void main(String[] args) {
    int e = 35;
    // 변수 e의 값은 3의 배수가 아닌가?
    boolean isNotMultiple3 = e % 3 != 0;
    System.out.println(isNotMultiple3);
    isNotMultiple3 = !(e % 3 == 0);
    System.out.println(isNotMultiple3);
}

0개의 댓글

관련 채용 정보