[10일차] 13. 자바의 연산자들 -3 (조건 연산자, 비트 연산자) / 14. 조건문 -if문(만약에... 라면) / 15. 조건이 여러 개 일 때의 if문

WOOJEON JANG·2022년 1월 5일
0

Part01. 자바 프로그래밍

ch 01. 자바 기초

<13. 자바의 연산자들 -3(조건연산자, 비트 연산자)>


<조건 연산자>

  • 삼항 연산자(항이 3개 라는 뜻)
  • 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨
  • if(조건문)을 간단히 표현할 때 사용할 수 있음
  • 예제

    입력받기 위해 Scanner를 Import한 모습
    이대로 실행하면 console에 아무것도 나오지 않는다. 이유는 입력받기 위한 준비 상태가 된 것이기 때문에(우측 빨간버튼이 그 표시) 아래와같이 사용자가 입력 하면 그 값을 그대로 출력한다.


입력을 응용해서 값을 입력 받고, 두 수를 비교해 큰 수를 출력


<비트 연산자>

  • 대입연산자와 다른 연산자가 함께 쓰임

  • 마스크 : 특정 비트를 가리고 몇 개의 비트 값만 사용할 때

  • 비트 켜기 : 특정 비트들만을 1로 설정해서 사용하고 싶을 때
    ex. & 00001111(하위 4비트 중 1인 비트만 꺼내기)
    00000101 -> 10진수 5를
    00001111 -> 1111로 &(AND)연산 하면 결과가
    00000101 -> 그대로 출력됨

  • 비트 끄기 : 특정 비트들만을 0으로 설정해서 사용하고 싶을 때
    ex. | 11110000(하위 4비트 중 0인 비트만 0으로 만들기)
    00000101 -> 10진수 5를
    0000000 -> 0000로 &(AND)연산 하면 결과가
    0000000 -> 0000으로 출력(off)됨

  • 비트 토글 : 모든 비트들을 0은 1로, 1은 0으로 바꾸고 싶을 때

  • 예제

&(AND)
00000101 (십진수 5)
00001010 (십진수 10) -> 이 두가지를 &(AND) 연산 하면
00000000 -> 이 나옴

|(OR)
00000101 (5)
00001010 (10)-> 이 두가지를 |(OR)연산 하면
00001111 (15) -> 이 나옴

^(XOR)
00000101 (5)
00001010 (10)-> 이 두가지를 ^(XOR)연산 하면
00001111 (15)-> 이 나옴 (XOR는 서로 다를 때 1이 출력됨으로)

~(NOT)
00000101 (5) -> ~(NOT)으로 연산하면
11111010 -> 반전되서 나옴(맨 앞자리가 1이면 음수)

<<(SHIFT)
00000101 (5) -> 이 수를 <<1(왼쪽으로 1칸 SHIFT 하면
00001010 (10) -> 왼쪽으로 한자리씩 밀려서 10이 됨(5x2의 1승과 같음)
00010100 (20) -> 왼쪽으로 2자리씩 밀면 5가 20이 됨(5x2의 2승과 같음)
, 반대로 >>(우측으로 SHIFT하면 나누기)


<연산자 우선순위>

위의 우선순위는 따로 외울필요 없이, 자주 사용하다 보면 자연스럽게 익히게 된다. 그러나, 가독성을 위해 괄호를 적절히 사용하는 것은 알아두어야 한다.

  • 예제
    ((num1 + 10) > 10) -> 이것과
    (num1 + 10 > 10) -> 이것의 차이 처럼, 연산에 영향은 없지만 가독성을 높여서 작성하는 것이 좋다.

오늘의 공부 소감(13.) :
정보처리 기능사 필기 시험에서 공부한 내용들이 이 단원을 이해하는데 많은 도움이 되었다.



<14. 조건문 -if문(만약에... 라면)>


<조건문 이란?>

  • 주어진 조건에 따라 다른 실행이 이루어 지도록 구현

  • '재산이 1억 이상이면 100만원을 세금으로 낸다. 그렇지 않으면 내지 않는다'를 구현 한다면
    만약에(재산이 1억 이상이면) {
    세금을 100만원 낸다
    }
    그렇지 않으면 {
    세금을 내지 않는다
    }

  • if문법

if(조건식){
  수행문;      // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 수행됨 
 }             // 조건식이 '참'이 아니면(조건에 맞지 않는 경우) 수행문이 수행되지 않음
  • if - else 문 문법
if( 조건식) {

    수행문1;   // 조건식이 '참'인 경우에 수행됨
}
else{
    수행문2;    // 조건식이 '참'이 아닌 경우에 수행됨
}
  • 예제

항상 indentation(들여쓰기)에 신경써야한다

오늘의 공부 소감(14.) :
if - else문으로 짠 프로그래밍이 실제에선 어떻게 활용되는지 보고 싶다...



<15.조건이 여러개 일 때의 if문>


  • 하나의 상황에 대한 조건이 여러개로 나뉘고 각 조건에 다른 수행이 이루어져야 할 경우 사용
  • 각 조건은 상호 배타적임
 if(조건식1){
      수행문1;        // 조건식1이 '참'인 경우 수행하고 전체 조건문을 빠져나감
  }
  else if(조건식2){
      수행문2;        // 조건식2이 '참'인 경우 수행하고 전체 조건문을 빠져나감
  }
  else if(조건식3){
      수행문3;        // 조건식3이 '참'인 경우 수행하고 전체 조건문을 빠져나감
  }
  else{
      수행문4;        // 위 조건이 모두 해당되지 않는 경우 수행됨 (디폴트 조건)
  }

  수행문5;            // if-else if-else 문이 끝나면 수행됨

  가령 조건식2가 만족되면 수행문2 -> 수행문5  순으로 수행됨
  • 위 예제를 순서대로 나타내면 아래와 같다

  • 예제

하나의 상황에 여러가지 조건을 비교할 때 사용한다.


<if-else if문과 if-if문의 차이점>

  • if-else if문을 사용하는 경우, 하나의 조건이 만족 되면 나마지 else if부분은 수행되지 않음

  • if-if로 사용하게 되면 각각 다른 조건문으로 해석되어 각각 수행하게 됨

  • (아래 예제는)위 else-if 예제를 모두 if-if로 바꾸어 본 것

    if-if 각각의 조건을 하나씩(별개로, 여러 상황에서) 따져가며 내려간다.

오늘의 공부 소감(.15) :
if-else, if-if 문이 상당히 재미있다. 응용해서 프로그래밍해보고 싶다.

profile
back-end enginneer

0개의 댓글