Day 7 (23.01.03)

Jane·2023년 1월 3일
0

IT 수업 정리

목록 보기
7/124

1. 단항 연산자

1-1. 부호 연산자

- : (-1) * 숫자

  • 연산 과정이 일어나므로 int로 자동 형 변환된다.

public class UnaryAddMin {

	public static void main(String[] args) {
		
		short num = 7;
		short a = (short)(+num);
		short b = (short)(-num);
		
		System.out.println(a);
		System.out.println(b);
	}

}

[Console]
7
-7

1-2. 전위 증가 연산

  • 먼저 계산, 나중에 대입
  • a = 1, b = ++a -> a = a+1(2), b = 2
public class PrefixOp {

	public static void main(String[] args) {
		int num = 7;
		System.out.println(++num);
		System.out.println(++num);
		System.out.println(num);
	}

}

[Console]
8
9
9

1-3. 후위 증가 연산

  • 먼저 대입, 나중에 계산
  • a = 1, b = a++ -> b = a(1), a = a+1(2)
public class PostfixOp {

	public static void main(String[] args) {
		int num = 5;
		System.out.print((num++) + " ");
		System.out.print((num++) + " ");
		System.out.print((num) + "\n");
        
        System.out.print((num--) + " ");
		System.out.print((num--) + " ");
		System.out.print((num) + "\n");
		
	}

}

[Console]
5 6 7
7 6 5

1-4. 비트 연산자

&(AND) : 둘 다 1이어야 1, 나머지는 0
|(OR) : 둘 다 0이어야 0, 둘 중에 하나라도 1이면 1
^(XOR) : 둘 중 하나만 1이어야 1, 둘 다 같은 숫자면 0 (배타적 연산)
~(NOT) : 0은 1, 1은 0

public class BitOperator {

	public static void main(String[] args) {
		byte n1 = 5; // 0000 0101
		byte n2 = 3; // 0000 0011
		byte n3 = -1; // 1111 1111
		
		byte r1 = (byte)(n1 & n2); // 0000 0001
		byte r2 = (byte)(n1 | n2); // 0000 0111
		byte r3 = (byte)(n1 ^ n2); // 0000 0110
		byte r4 = (byte)(~n3); // 0000 0000
		
		System.out.println(r1);
		System.out.println(r2);
		System.out.println(r3);
		System.out.println(r4);
	}

}

[Console]
1
7
6
0

1-5. 비트 시프트 연산

<< 숫자 : 숫자만큼 비트를 왼쪽으로 밀기
>> 숫자 : 숫자만큼 비트를 오른쪽으로 밀기

  • 시프트 연산은 대입 연산이 아니므로, 변수 값이 그대로 있다.
public class BitShiftOp {

	public static void main(String[] args) {
		byte num;
		
		num = 2; //0000 0010
		System.out.print((num << 1) + " "); // 0000 0100
		System.out.print((num << 2) + " "); // 0000 1000
		System.out.print((num << 3) + " " + "\n"); // 0001 0000
		
		num = 8; //0000 1000
		System.out.print((num >> 1) + " "); // 0000 0100
		System.out.print((num >> 2) + " "); // 0000 0010
		System.out.print((num >> 3) + " " + "\n"); // 0000 0001
		
	}

}

[Console]
4 8 16
4 2 1

2. 이스케이프 문자

\n : new line(개행)
\t : tab 삽입
\' : 작은따옴표
\" : 큰따옴표

3. 조건문

	public static void main(String[] args) {
		int n1 = 5;
		int n2 = 7;

		//if문
		if (n1 < n2) {
			System.out.println("n1 < n2 is true");
		}

		//if~else문
		if (n1 == n2) {
			System.out.println("n1 == n2 is true");
		} else {
			System.out.println("n1 == n2 is false");
		}
	}

[Console]
n1 < n2 is true
n1 == n2 is false

4. 조건문 예제

4-1. 평균 구하고 수우미양가 표시하기

public class average {

	public static void main(String[] args) {
		int ko = 100; // korean
		int en = 90; // english
		int ma = 0; // math

		double aver = (ko + en + ma) / (double)3; // average
        
		System.out.println("평균 : " + aver);

		if (aver >= 90) {
			System.out.println("수 입니다.");
		} else if (aver >= 80) {
			System.out.println("우 입니다.");
		} else if (aver >= 70) {
			System.out.println("미 입니다.");
		} else if (aver >= 60) {
			System.out.println("양 입니다.");
		} else {
			System.out.println("가 입니다.");
		}

	}

}

4-2. 최댓값 출력하기

public static void main(String[] args) {
		int a = -80;
		int b = 33;
		int c = 55;
		
		int num = 0;
		
		if(a > b) { // a가 b보다 클 경우
			num = a;
			
		}else{ // a가 b보다 작을 경우
			num = b;
		}
		
		if(num < c) { // c가 num보다 큰 경우
			num = c;
		}
		
		System.out.println(num);
}
profile
velog, GitHub, Notion 등에 작업물을 정리하고 있습니다.

0개의 댓글