728x90
반응형

삼항연산자 (항이 3개인 연산자)

 

자료형 변수 = 조건 ? 값 1 : 값2;  <--코드식

자료형 변수 = 조건 ? 값 1 : ( 조건 ? 값 2 : 값3 );

 

조건이 true이면 값1이 변수에 할당된다

조건이 false이면 값2가 변수에 할당된다

 

예제를 한번보고 넘어가도록 하자


class C{

  public static void main(String[] args){

    int num=-9; //예제에서 num은 –9가 되므로 0보다 크지 않기 때문에

    String a=num>0 ? "양수" : "음수"; //조건식에 false가 선언되어 우측변수에 할당된다 

    System.out.println(a); //결과는 음수이다.
  }

}

위와 같이 num이 0보다 크다면 첫번째 섹터에 있는 "양수"를 String a 저장하고

크지 않다면 "음수"를 String a에 저장하게 된다 

 

다른 예제를 살펴 보도록 하자

 


class E{

  public static void main(String[] args){

    int num=0;

    String a= num==0 ? "영" : ( num<0 ? "음수" : "양수") ;

    System.out.println(a); 
  }
}

class E{

  public static void main(String[] args){

    int num=0;

    String a= num!=0 ? ( num<0 ? "음수" : "양수") ; "영"

    System.out.println(a); 
  }
}

위와 같이 중복으로 사용할 수 있다.

조건식에 num의 값이 0으로 true일 경우 “영” 이 호출되지만

만약 false 경우 오른쪽 중괄호 조건식을 향한다. 이때 중괄호 안에 조건식을 선언해서

구체적인 값을 다시 물어볼 수 있다

 

 

 

return 삼항연산자, method 동시 활용법


class Mymath{

  int max(int a, int b){

  return a>b ? a:b; // 명령행 매개변수의 값이 지정하면 method 선언으로

  } // return 값을 호출문에 돌아간다

} // v3에 그 값은 저장이 되고 출력문을 통해 v3가 출력된다


class Z{

  public static void main(String[] args){

    Mymath o=new Mymath();

    int v1=Integer.parseInt(args[0]);

    int v2=Integer.parseInt(args[1]);

    int v3=o.max(v1,v2); // 명령행 매개변수를 정수로 변환하여

    System.out.println(v3); // 그 변수를 method 매개변수에 재할당된 값으로

  } // 삼항연산을 한 값을 return을 하여 호출문에서 출력한다

}

class I{

  public static void main(String[] args){

    int num=Integer.parseInt(args[0]);

    String a= num>0 ? "양수" : "음수"; // num이 0보다 작을 때 a에 음수가 저장되고

    String a1= num==0 ? "영" : a; //num이 0과 같지 않을 때 a가 a1에 저장된다

    //이때 a는 음수라는 문자열 값을 가진다

    System.out.println(a1);
  }
}


위의 메서드를 활용해서 삼항연산자를 사용하면 일정 값을 대치하여 간편하게 이용할 수 있다

 

 

 

-삼항연산자, 논리연산자 활용예문-


class A{

  public static void main(String args[]){

    int age=35;

    String a= (20<=age && age<30) ? "20대" : "20대아님";

    System.out.println(a);

  }
}

 


마지막으로 삼항연산자를 이용하여 짝, 홀수 판별해보자

 

public class EvenOddTriCondition {

  public static void main (String[] args) {
  
    int temp = 99;
    
    temp = (temp%2==1) ? temp*3+1 : temp/2;
    
    System.out.printf("계산 후=%d\n", temp);
    
  }
  
}

 

temp가 6일 때 (temp%2)는 0으로 짝수이다. 홀수가 아니므로 temp/2인 3을 temp에 대입한다.

temp가 5일 때 (temp%2)는 1로 홀수이다. 홀수이므로 tempX3+1인 16을 temp에 대입한다.


 

논리 연산자와 삼항연산자를 동시에 사용할 수 있다

이러한 예제를 많이 보는것이 어떻게보면 코드를 잘할 수 있을거라고 생각한다

보지도 않고 창의적으로 생각해서 코드짤수 있다면 얼마나 좋을까

그렇지 못한 필자는 여러가지 쿡북용 책도 많이 보는 편이다

 

 

 

2020/06/02 - [Java/생성자] - Java - 생성자 호출과 선언, 개념

 

Java - 생성자 호출과 선언, 개념

생성자 기본 method 형식에서 클래스 변수로 method를 생성한 선언문이다 객체 생성할 때 매개변수 값을 동시에 선언하는 방식으로 식은 다음과 같다. ( 클래스 변수 식별자변수=new 클래스 변수(매��

tantangerine.tistory.com

 

728x90
반응형

+ Recent posts

Powered by Tistory, Designed by wallel