[계산] //0.75 가 나오도록 에러를 잡으시오. public class Test2 { public static void main(String[] args) { int a = 4; int b = 3; double c = (double) b / a; System.out.println(c); } }
[결과값] 0.75
[계산] public class Test2 { public static void main(String[] args) { int a = +'A' + 10 System.out.println('A' + 'A'); } }
[결과값] 130 [설명] char+char를 하게 되면 int값이 된다. A=65이기에 65+65=130
결합방향 : 동등한 우선순위에서 어떤 것을 먼저 계산하는지
우선순위 : 3+1*6
⇒ 1. *
2. +
[계산] int num3 = 10, num4 = 20, num5 = 30; num3 = num4 = num5; System.out.println(num3); System.out.println(num4); System.out.println(num5);
[결과값] 30 30 30 [설명] 같은 연산자인 경우 결합방향순으로 계산한다. =은 오른쪽에 있는 값을 왼쪽에 있는 변수에 대입한다.
[계산] public class Test2 { public static void main(String[] args) { int num1 = 7; int num2 = 3; System.out.println("num1 + num2 = " + (num1 + num2)); System.out.println("num1 - num2 = " + (num1 - num2)); System.out.println("num1 * num2 = " + (num1 * num2)); System.out.println("num1 / num2 = " + (num1 / num2)); System.out.println("num1 % num2 = " + (num1 % num2)); } }
[결과값] num1 + num2 = 10 num1 - num2 = 4 num1 * num2 = 21 num1 / num2 = 2 num1 % num2 = 1 [설명] num1 / num2 = 2 ⇒실수로 표현 시 System.out.println("num1 / num2 = " + ((double)num1 / num2)); %(나머지):홀수/짝수 확인할 때 사용
★복합 대입 연산자 사용 시 형 변환을 하지 않아도 자동으로 변환된다.★
[계산] public class Test2 { public static void main(String[] args) { int num1 = 7; int num2 = 3; num1 += 3; System.out.println(num1); } }
[결과값] 10
[계산] public class CompAssignOp { public static void main(String[] args) { short num = 10; num = (short) (num + 77L); // 형 변환 안하면 컴파일 오류 발생 int rate = 3; rate = (int) (rate * 3.5); // 형 변환 안하면 컴파일 오류 발생 System.out.println(num); System.out.println(rate); num = 10; num += 77L; // 형 변환 필요하지 않다. rate = 3; rate *= 3.5; // 형 변환 필요하지 않다. System.out.println(num); System.out.println(rate); } }
[결과값] 87 10 87 10
= : 대입
== : 같은가
!= : 다른가
[계산] public class RelationalOp { public static void main(String[] args) { // Boolean으로 값을 불러온다. System.out.println("3 >= 2 : " + (3 >= 2)); System.out.println("3 <= 2 : " + (3 <= 2)); System.out.println("7.0 == 7 : " + (7.0 == 7)); System.out.println("7.0 != 7 : " + (7.0 != 7)); } }
[결과값] 3 >= 2 : true 3 <= 2 : false 7.0 == 7 : true 7.0 != 7 : false
&& : A와 B 모두 true 이면 ture (and)
|| : A와 B 둘 중 하나라도 true면 true (or)
! : A가 true이면 false, A가 false이면 true (not)
[계산] public class LogicalOp { public static void main(String[] args) { int num1 = 11; int num2 = 22; boolean result; // 변수 num1에 저장된 값이 1과 100 사이의 수인가? result = (1 < num1) && (num1 < 100); System.out.println("1 초과 100 미만인가? " + result); // 변수 num2에 저장된 값이 2 또는 3의 배수인가? result = ((num2 % 2) == 0) || ((num2 % 3) == 0); System.out.println("2 또는 3의 배수인가? " + result); // 변수 num1이 0인가? result = !(num1 != 0); System.out.println("0인가? " + result); // 55가 5와 3의 배수인지 판별하시오. int num3 = 55; result = ((num3 % 5) == 0) && ((num3 % 3) == 0); System.out.println("55가 5와 3의 배수인지 판별하시오 : " + result); //3이 짝수인지 홀수인지 판별하시오. int num4 = 3; result = ((num4 % 2) == 0); System.out.println("짝수인가 : " + result); result = ((num4 % 2) == 1); System.out.println("홀수인가 : " + result); } }
[결과값] 1 초과 100 미만인가? true 2 또는 3의 배수인가? true 0인가? false ⇒!(num1 != 0); num1 = 0이 아니라 true이지만, 괄호 앞에 !가 붙어서 flase 55가 5와 3의 배수인지 판별하시오 : false 짝수인가 : false 홀수인가 : true
[계산] public class SCE { public static void main(String[] args) { int num1 = 0; int num2 = 0; boolean result; result = ((num1 += 10) < 0) && ((num2 += 10) > 0); System.out.println("result = " + result); System.out.println("num1 = " + num1); System.out.println("num2 = " + num2 + '\n'); // '\n'은 개행 result = ((num1 += 10) > 0) || ((num2 += 10) > 0); System.out.println("result = " + result); System.out.println("num1 = " + num1); System.out.println("num2 = " + num2); } }
[결과값] result = false num1 = 10 num2 = 0 . result = true num1 = 20 num2 = 0