8일차 java 연산(2023-01-03)

권단비·2023년 1월 3일
0

IT

목록 보기
12/139

[참조]

・\ : 이스케이프 문자
・\t : 3~4칸 띄어쓰기
・println = 개행함
・print = 옆 space

[Eclipse 연습]

[계산]
public class Test3 {
	public static void main(String[] args) {
		int num1 = 33;
		boolean result;
		// 33은 1과 100사이의 수인가?
		result = (1 < num1) && (num1 < 100); // <=(이상/이하) 으로 표현해도 됨.
		System.out.println(result);
		// 22는 2의 배수 또는 3의 배수 인가?
		int num2 = 22;
		result = ((num2 % 2) == 0) || ((num2 % 3) == 0);
		System.out.println(result);
	}
}
[결과값]
true
true

[부호 연산자]

double e1 = 3.5; ⇒ 부동소수점으로 올림
double e2 = -e1; // e1에 저장되는 값은 -3.5
[계산]
public class UnaryAddmin {
	public static void main(String[] args) {
		short num1 = 5;
		System.out.println(+num1); // 결과적으로 불필요한 + 연산
		System.out.println(-num1); // 부호를 바꿔서 얻은 결과를 출력
		short num2 = 7;
		short num3 = (short) (+num2); // 형 변환 하지 않으면 오류 발생 ⇒ +1*7=7 연산식이 되어 int형으로 자동 계산된다.
		short num4 = (short) (-num2); // 형 변환 하지 않으면 오류 발생 ⇒ -1*7=-7 연산식이 되어 int형으로 자동 계산된다.
		System.out.println(num3);
		System.out.println(num4);
	}
}
[결과값]
5
-5
7
-7

★[증가 감소 연산자]★

[전위연산 계산]
public class PrefixOp {
	public static void main(String[] args) {
		int num = 7;
		System.out.println(++num); // num의 값 하나 증가 후 출력
		System.out.println(++num); // num의 값 하나 증가 후 출력
		System.out.println(num);
	}
}
[결과값]
8
9
9

[후위연산 계산]
public class PrefixOp {
	public static void main(String[] args) {
		int num = 5;
		System.out.println("AAA" + "\t" + "kdkdkd");
		// println \:이스케이프 문자, /t : 3~4칸 띄어쓰기
		System.out.print((num++) + " "); // 출력 후에 값이 증가
		System.out.print((num++) + " "); // 출력 후에 값이 증가
		System.out.println(num + "\n");
		System.out.print((num--) + " "); // 출력 후에 값이 감소
		System.out.print((num--) + " "); // 출력 후에 값이 감소
		System.out.print(num--);
	}
}
[결과값]
AAA	  kdkdkd
5 6 7

7 6 5
[설명]
\t : 3~4칸 띄어쓰기
println = 개행함
print = 옆 space

[비트 연산자]

1 & 1 = 1
0 & 1 = 0
0 & 0 = 0

1 | 1 = 1
1 | 0 = 1
0 | 0 = 0

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 0 = 0

~n
1 = 0
0 = 1
[계산]
public class BitOperator {
	public static void main(String[] args) {
		byte n1 = 5; // 00000101
		byte n2 = 3; // 00000011
		byte n3 = -1; // 11111111
		byte r1 = (byte) (n1 & n2); // 00000001
		byte r2 = (byte) (n1 | n2); // 00000111
		byte r3 = (byte) (n1 ^ n2); // 00000110
		byte r4 = (byte) (~n3); // 00000000
		System.out.println(r1); // 00000001은 1
		System.out.println(r2); // 00000111은 7
		System.out.println(r3); // 00000110은 6
		System.out.println(r4); // 00000000은 0
	}
}
[결과값]
1
7
6
0

[비트 쉬프트 연산자]

<< : 왼쪽으로 이동
>> : 오른쪽으로 이동

[계산]
public class BitShiftOp {
	public static void main(String[] args) {
		byte num;
		num = 2; // 00000010
		System.out.println((byte) (num << 1) + " "); // 00000100 왼쪽으로 1번 이동, 값의 2배 증가.
		System.out.println((byte) (num << 2) + " "); // 00001000 왼쪽으로 2번 이동
		System.out.println((byte) (num << 3) + " " + '\n'); // 00010000 왼쪽으로 3번 이동
		num = 8; // 00001000
		System.out.println((byte) (num >> 1) + " "); // 00000100 오른쪽으로 1번 이동, 값을 2로 나눈 결과
		System.out.println((byte) (num >> 2) + " "); // 00000010 오른쪽으로 2번 이동
		System.out.println((byte) (num >> 3) + " " + '\n'); // 00000001 오른쪽으로 3번 이동
		num = -8; // 11111000
		System.out.println((byte)(num >> 1) + " "); // 11111100
		System.out.println((byte)(num >> 2) + " "); // 11111110
		System.out.println((byte)(num >> 3) + " " + '\n'); // 11111111
	}
}
[결과값]
4 
8 
16 

4 
2 
1 

-4 
-2 
-1 

[if~else문]

[계산]
public class IF {
	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"); // if 맞다면 여기서 멈춤
		} else {
			System.out.println("n1 == n2 is false"); // 다르다면 이 값을 출력
			// if ~ else 문 :
			if ((n2 % 2) == 0) {
				System.out.println("n2 is 짝수");
			} else {
				System.out.println("n2 is 홀수");
			}
		}
	}
}
[결과값]
n1 > n2 is true
n1 == n2 is false
n2 is 홀수
[계산]
// n2 에 있는 값이 3의 배수이고, 2의 배수이면 출력을 3의 배수이자 2의 배수입니다.
		// 3의 배수이고, 2의 배수가 아니면 출력을 "메롱"
        int n2 = 7;
		if (((n2 % 3) == 0) && ((n2 % 2) == 0)) {
			System.out.println("3의 배수이자 2의 배수입니다.");
		} else {
			System.out.println("메롱");
		}
[결과값]
메롱

[계산]
public class Ifelse {
	public static void main(String[] args) {
		int kor = 100;
		int eng = 65;
		int math = 100;
		double average = ((double) kor + eng + math) / 3;
		System.out.println(average);
		if (average >= 90) {
			System.out.println("수 입니다.");
		} else if (average >= 80) {
			System.out.println("우 입니다.");
		} else if (average >= 70) {
			System.out.println("미 입니다.");
		} else if (average >= 60) {
			System.out.println("양 입니다.");
		} else {
			System.out.println("가 입니다.");
		}
	}
}
[결과값]
88.33333333333333
우 입니다.
[계산]
public class Ifelse {
	public static void main(String[] args) {
		int kor = 0;
		int eng = 80;
		int math = 30;
		// 최대값을 구하시오
		if ((kor > eng) && (kor > math)) {
			System.out.println("kor" + kor);
		} else if ((eng > kor) && (eng > math)) {
			System.out.println("eng" + eng);
		} else if ((math > kor) && (math > eng)) {
			System.out.println("math" + math);
		} else {
			System.out.println("오류");
		}
[결과값]
eng80

0개의 댓글