1.산술연산자
/ *산술연산자(이항연산자)의 결과는 다양함 산술연산자 내에서의 연산 우선순위는
( * , % , / ) > (+ , - )
참고로 %얘는 나머지값을 구하는 연산임
우선순위가 같은경우 왼쪽에서 오른쪽으로 연산, 산술연산자를 써서 식을 만들면 산술식
*/
int result = 3 * 2 + 5 % -6 / 3 * 5;
system.out.printf("3 * 2 + 5 %% -6 / 3 * 5의 결과 : %d",result);
2.비교연산자
/* 비교연산자(이항연산자)의 결과는 true 아니면 false (boolean 값)
> : ~보다 크다
>=: ~보다 크거나 같다
< : ~보다 작다
<=: ~보다 작거나 같다
!=: 같지 않다
==: 같다
비교연산자는 모두 우선 순위가 같다, 산술연산자가 비교연산자보다 우선순위가 높다.
비교연산자를 사용한 식은 비교식임
*/
int num1 = 10, num = 20;
system.out.println(num1 > num2);
boolean b = num1 == num 2;
system.out.prinf("%d == %d의 결과:%b%n", num1,num2,b);
b = num1 != num2;
system.out.prinf("%d != %d의 결과: %b%n", num1,num2,b);
b=15 % 3 * 2 + 4 > (10-2) * 4 != true ;
System.out.printf("15 %% 3 * 2 + 4 > (10-2) * 4 !=true위 결과:%b",b);
3.논리연산자
/* 논리연산자(이항연산자 혹은 단항연산자)의 결과값은 true,false이다.
&& : and연산자(논리곱) 두 항이 참일때만 참이다
|| : or연산자(논리합) 두 항 중의 하나라도 참이면 참
!(단항) : not연산자(논리부정) 단항이 참이면 거짓, 거짓이면 참 (~아니다) ***이거 단항이라는거!!
^(이항) : xor연산자(배타) 두 항이 서로 배타적일때 참, 두 항이 서로 같으면 거짓 ***헷깔리니까 조심!!
-논리연산자의 우선 순위: ! > && > ||,^
- && 와 & , || 와 | 는 둘다 결과값이 같지만 되도록 &&와 || 이걸로 쓰자
- &&는 첫째항이 거짓이면 두번째항은 계산안한다
- &는 첫째항이 거짓이더라도 두번째항을 계산한다
- 산술 > 비교 > 논리연산자순으로 우선순위가 적용됨.
*/
int num1 = 15, num2 = 10;
boolean b = num1 >= num2 && num1 == num2 ;
System.out.printf("%d >= %d && %d == %d의 결과:%b%n",num1,num2,num1,num2,b);
b = true || false ;
System.out.printf("%b || %b 의 결과 : %b%n", true,false,b);
/* 논리 연산자 (&&,||,!,^)의 각 항에는 반드시 true 나 false 값을 갖는 식 이거나 true, false 값 이이야 한다.
// b = num1 + num2 && num1 != num2; 왼쪽 항이 비교식이 아닌 산술식이라 불가능
b = num1 <= num2 ^ num1 != num2 ;
Syetem.out.printf("%d <= %d ^ %d != %d 의 결과: %b%n ",num1,num2,num1,num2,b)
b= !(num1 != num2) || num1 >= num2 && num1 == num2 ;
System.out.println("b는"+b);
b= 10 % 3 > 6-2*2 && 10 < 6*2 || 5*3 !=10;
System.out.println("b는="+b);
b = !true || true ^ false && true;
System.out.println("b는 "+b);
// **********참고 [&& 와 & , || 와 |]
/*
Ref ref = new Ref(); 구체적 내용은 아직 몰라도 됨 우선 예시로
System.out.println(ref.data);//[o]
*/
Ref ref= null;
//System.out.println(ref.data);//[x] 오류나는 연산임
System.out.println(ref);
// &&사용시 : 왼쪽이 거짓이면 뒤에꺼 굳이 실행하지 않는다
System.out.println(ref != null && ref.data ==100);
//이건 오른쪽항(ref.data ==100)을 실행하지 않는다. 왼쪽항이 거짓임으로 바로 결과값 false 출력
// & 사용시 : 왼쪽이 거짓이여도 뒤에꺼까지 실행, 확인사살함
//이건 오른쪽항 (ref.data==100)이 실행이 되서 출력안됨
//System.out.println(ref != null & ref.data ==100); 에러 뜸
4.할당연산자
/* 1.할당연산자 정의
우선 할당연산자는 ' = ' 요놈임!!
뜻이 오른쪽에 있는 놈을 왼쪽에 대입(할당) 한다는 뜻
축약표현 : +=,-=,*=,%= ....등등
변수1 += 값(변수2) 이건 변수1 = 변수1+값 혹은 변수1+변수2
*/
// 1.1 할당(대입) 연산자
int num1;
num1 = 100; // 변수 초기화한거, 대입연산자의 오른쪽 식이 항상 먼저 실행 후 그 결과를 왼쪽 변수에 대입!
system.out.println(num1);
int num2;
num2 = num1 // 변수 num1에 저장된 값을 대입한다는 것!
// cf. 10 = num1; 이건 안됨 왜? 왼쪽에는 항상 변수가 와야한다.
// 1.2 축약 표현
// (산술연산자에만 적용된다.)
num1 += 100 ; // 이 뜻은 num1 = num1 + 100;와 같다
System.out.printf("num1:%d,num2:%d%n",num1,num2);
num1 %= num2 ; // 이건 num1 = num1 % num2; 와 같다
System.out.printf("num1:%d,num2:%d%n",num1,num2);
num2 *= 2+10; // 이건 num2 = num2 * (2+10);와 같다. 왜?? 항상 오른쪽 항이 먼저 계산됨!
System.out.printf("num1:%d,num2:%d%n",num1,num2);
// cf. num1 &&= num2; 요건 불가함 , 축약은 산술연산에만 가능함
boolean b1 = true, b2=false;
b1= b1 && b2 ; // 이거 축약한다고 해서 b1&&=2; 이런거 안된다고
System.out.println(b1);
5.증감연산자
/* 1.증감연산자정의
증감연산자(단항 연산자) : ++(증가 연산자), --(감소연산자)
++는 자기자신을 1증가시킨다, --는 자기자신을 1감소시킨다.
단독으로 쓰일때는 항이 증감연산자 앞에 붙거나 뒤에 붙거나 결과는 같다.
하지만 다른 연산자와 결합할때는
++(--)변수 : 먼저 자신을 증감 시킨다
변수++(--) : 다른 연산을 수행한후 자신을 증감시킨다.
*/
// 1.2 단독으로 사용시
int num3 =10;
// 변수명 ++ (후위연산자)
num3++; 이건 num3=num3+1; (num3 += 1)와 같다.
System.out.printf("num3:%d%n",num3);
++num3; // 이거도 출력값은 차이가 없다
System.out.printf("num3:%d%n",num3);
// 1.3 다른 연산과 함께 사용시
// 후위 연산(변수++) : 다른 연산을 먼저 수행한 후 마지막에 자기자신을 1증가(++)시키거나 감소(--)시킨다.
int num4 =10;
int result = num4 + num3++;
/* 풀이
1]num4 + num3 = 10 + 11
2]result = 21
3]num3 = num3 +1 즉 num3는 12 */
System.out.printf("result:%d,num3:%d%n",result,num3);
// 전위 연산(++변수) : 자기자신을 먼저 1증가(++)시키거나 감소(--)시킨 후 다른연산 수행
result = num4 + ++num3;
/*풀이
1]num3=num3+1
2]num4 +1]번 = 10 +13 = 23
3]result =23
System.out.printf("result:%d,num3:%d%n",result,num3);
// cf 참고사항
int num5 = 10;
//println메소드의 매개변수에 num5에 있는 값이 대입(복사)(대입연산이 일어난후)된 후 자기자신을 1증가시킴
System.out.println(num5);
System.out.println(++num5); // 결과가 다르네 ? 이건 단독으로 사용된게 아니래.. 나중에 배울껴
'학원 > JAVA' 카테고리의 다른 글
9.19 4-2일 차 IfStatement02(If ~else) (0) | 2022.09.19 |
---|---|
9.19 4-1일 차 controlstatement 들어가기 ( if Statement ) (1) | 2022.09.19 |
9/16 3-1일차(참조형,Typecasting,EscapeChar) (0) | 2022.09.17 |
9/15 2일차 수업(변수선언, int형,double형) (0) | 2022.09.15 |
9.14 1일차 수업 (0) | 2022.09.14 |