삼항연산자 (항이 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
'IT_Web > Java' 카테고리의 다른 글
[Java] 상속자, 은닉변수, super(), this의 활용 (0) | 2020.06.14 |
---|---|
[java] 객체모델링(멤버변수, 매개변수, 로컬변수)활용 및 메서드 (0) | 2020.06.13 |
[Java] 메서드 선언과 호출, 반환형과 무반환형 method 활용 (0) | 2020.06.11 |
[Java] 명령행 매개변수 cmd창에 직접 값넣기 (0) | 2020.06.11 |
Java - 생성자 호출과 선언, 개념 (0) | 2020.06.02 |