JAVA_Learn/Basic

#3. 절대값(Absolute)을 구하는 여러가지 방법과 삼항연산자

CEJ_0929 2021. 12. 11. 18:34

Q. 정수 2개 (A, B)를 입력받고 뺄셈의 값을 출력하라.

   단, 양수로 출력할 것.

1
2
3
System.out.println("정수 2개 입력하세요.");
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
cs

 

 


 

 

방법1. <연산순서 바꿔주기> _ feat.삼항연산자

1
2
3
int result = num1>num2 ? num1-num2 : num2-num1;
        System.out.println("==비교 후 연산순서 바꿔주기==");
        System.out.println(result);
cs

 

 

 

방법2. <마이너스(-) 부호 붙이기> _ feat.삼항연산자

1
2
3
4
int tmp = num1-num2;
        int result2 = tmp<0 ? -(tmp) : tmp;
        System.out.println("==== 마이너스 부호 붙이기 ====");
        System.out.println(result2);
cs
 

 

 

방법3. 비트연산자 이용 _ feat.삼항연산자

1
2
3
4
int tmp2 = num1-num2;
         int result3 = tmp2<0 ? ~tmp2 : tmp2;
         System.out.println("======= 비트연산자 =======");
         System.out.println(result3+1);
cs

 

 

 

방법4. 값의 위치를 바꾸기 _ feat. IF문

1
2
3
4
5
6
7
     System.out.println("===IF를 이용한 값 위치 바꾸기===");
         if(num1<num2) {
                int numTemp = num1;
                num1 = num2;
                num2 = numTemp;
                
            }System.out.println(num1-num2);
cs

 

 

 

방법5. Math 함수 이용 (지금 아는 것을 그때도 알았더라면...ㅋ)

1
2
System.out.println("=====math 함수 이용=======");
            System.out.println(Math.abs((num1-num2)));
cs

 

 


※ 간략히 알아보는 삼항연산자 ※

위와같이 조건과 결과가 간단할 때 코드를 간소화하기 위해 사용된다.

 

<구조>

조건 ? 참일때 : 거짓일 때

 

ex)    int result = num1>num2 ? num1-num2 : num2-num1;

ex)   num1이 num2보다 크니?

      그렇다면(?) num1에서 num2를 빼고

      아니라면(:) num2에서 num1을 빼도록 해

      그리고 그 값을 정수형 변수 result에 담아주도록 하라구~! 

 

굳이 코드를 우리 말로 적어보자면 이런 의미가 되겠다.

 

'JAVA_Learn > Basic' 카테고리의 다른 글

#2. 별(*)찍기 _ 피라미드  (0) 2021.12.09
#1. JAVA _별 찍기 (*)  (0) 2021.11.22