Java - 연산자2(관계연산자, 논리연산자,대입연산자, 삼항연산자)

2020. 8. 18. 22:12Java/Java

반응형

1. 관계연산자(=비교=대소관계) 

                                         >,>=,<,<=,!=(같지 않다),==

 

 ex) int x=3;
      int y=3;

변수에 들어가 있는 값이 서로 같은지 다른지 확인
                       if (x==y)  or if (x!=y)

 

2. 논리연산자 =>참과 거짓을 판별하는 연산자(=boolean 자료형과 연관)

    &, |, ^, &&, ||, ! 

    &&, &(and), ||, | (or),  ^(XOR)=>배타적인 결합, !=>(NOT)

 

(2>3) && (5<7) =>조건평가
===          첫항의 결과에 따라서 두번째항을 계산 또는 안할수도
                있는 방식의 평가방법
  F------------->F
  T---->T------>T
          F------>F

(2>3) & (5<7) =>모두평가
                       첫항의 결과와 상관없이 무조건 두번째항도
                       다 계산하는 방식

 

 

 

그 외 자세한 설명은 아래를 참조하자

https://programmer-seva.tistory.com/9

 

[스터디_자바 기본] 9. 논리 연산자

1. 논리 연산자 (&&, ||) 논리 연산자는 피연산자로 boolean형 또는 boolean형 값을 결과로 하는 조건식만을 허용한다. '&&'가 '||' 연산보다 우선순위가 높으므로 한 조건식에 '&&'와 '||' 가 함께 사용될 ��

programmer-seva.tistory.com

 

 

관계, 논리 연산자 예시

public class Op3 {

    public static void main(String[] args) {
		System.out.println("관계,논리연산자");
		int t1=3,t2=5,t3=7;
		int t4;//선언, 초기값X
		boolean b1,b2,b3;
		boolean b4=true;
		
		System.out.println("(t1>t2)=>"+(t1>t2));//3>5  =>if (t1>t2)
		System.out.println("(t2<t3)=>"+(t2<t3));//5<7
		//제어문의 조건식=>관계,논리 혼합(3>5) && (5<7) ->if((3>5) && (5<7))
		b1=(t1>t2) && (t2<t3); //조건평가
		System.out.println("(t1>t2) && (t2<t3)=>"+b1);//false
		// ||
		b1=(t1>t2) || (t2<t3);
		System.out.println("(t1>t2) || (t2<t3)=>"+b1);//true
		//!
		b3=!b4;  //!(true)  T->F, F->T
		System.out.println("!b4=>"+b3);
		//모두 평가(&,|,^)
		b1=(t1>t2) & (t2<t3); //조건평가
		System.out.println("(t1>t2) & (t2<t3)=>"+b1);//false
		// |
		b2=(t1>t2) | (t2<t3);
		System.out.println("(t1>t2) | (t2<t3)=>"+b2);//true
		//T,T, F,F->F
		b3=(t1>t2) ^ (t2<t3);
		System.out.println("(t1>t2) ^ (t2<t3)=>"+b3);//true (서로 값이 다르면 참)
	}
}

 

 

3.대입연산자(=배정연산자)

   a=a+1 =>a++,  b=b-1;  b--;
   +,-,*,/,%(나머지 구한것 까지 같이 처리)

   축약형=>a=a+1 ==>a+=1,a++
               a=a-1==>a-=1 ==>a--
               a=a*1==>a*=1
               a=a/1==>a/=1
               a=a%1==>a%=1

          축약형으로 사용하는 이유    =>   속도가 훨씬 빠르다.
          a=a+1 (연산자가 2개 사용)   =>   a+=1; (연산자 1개 사용)

 

4. 삼항연산자
    변수명=(조건식)? 참인값:거짓인값

 

public class Op4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        System.out.println("대입,삼항연산자");
        int a=5,b=7,x=10,y=-10;
        //삼항연산자=>변수명=(조건식)? 참인값:거짓인값
        int absX=(x>=0)?x:-x; //10->10,  -10->-(-10)=>10
        int absY=(y>=0)?y:-y;
        System.out.println("x=10일때 ,x의 절대값=>"+absX);
        System.out.println("y=-10일때 ,y의 절대값=>"+absY);
        System.out.println("===================");
        //a=a+b; a=5+7
        a+=b;
        System.out.println("a=>"+a);//12
        
        //a=a-b
        a-=b;//a=12-7
        System.out.println("a="+a);//5
        
        //a=a*b
        a*=b;//a=a*b=>a=5*7
        System.out.println("a="+a);//35
        
        //a=a/b
        a/=b; //a=a/b=>a=35/7=>소수점이 나오면 소수점은 버려진다.(기본 연산은 int)
        System.out.println("a="+a);//5
	}
}

 

반응형

'Java > Java' 카테고리의 다른 글

Java - Java(객체지향 프로그래밍)의 특징  (0) 2020.08.18
Java - 형변환  (0) 2020.08.18
Java - 산술, 증감 연산자  (0) 2020.08.18
Java - 자료형  (0) 2020.08.18
Java 설치 및 환경설정  (0) 2020.08.18