Java 프로그래밍 기본 (11) - 조건문
728x90

안녕하세요~ 항상 나아가는 개발자 pink_salt 입니다!

코드프레소 Java 웹 개발 체험단 활동을 하고 있습니다.

11번째 java 포스팅입니다~ 고고!

이번엔 '처음 시작하는 Java 프로그래밍' 강의를 듣고 공부한 내용을 정리하여 열한 번째 포스팅을 진행하겠습니다.


제어문(Control Flow Statement) 개념

  • 자바 프로그램은 기본적으로 위에서 아래로 순차적으로 실행됩니다.
  • 프로그램의 실행 순서를 제어 가능합니다.
    • 조건에 따라 실행 코드를 분기 ▶ 조건문(Conditional Statement)
    • 특정 코드를 반복해서 실행 ▶ 반복문(Loop Statement)

조건문, 반복문 flow chart

이번 게시물에서는 조건문부터 알아보겠습니다.

 

조건문(Conditional Statement)

  • 조건에 따라 서로 다른 코드가 실행 되도록 분기 처리한다.
  • 예를 들어, 홀수, 짝수 판별 프로그램을 만들 수 있습니다.
    • 주어진 숫자를 2로 나눈 나머지가 0이면 짝수 출력
    • 주어진 숫자를 2로 나눈 나머지가 1이면 홀수 출력
  • 티켓 발급 프로그램(가격은 1000원이고 미성년자는 20% 할인 해준다.) 등 프로그램을 조건문을 활용하여 구현할 수 있습니다.

 

비교 연산자를 통해서 if 문의 조건식을 통해 조건을 만들 수 있습니다.

boolean 형 결과를 가지는 비교연산자는 조건문의 조건식에 활용됩니다.

if, else if, else, switch 의 키워드를 사용하여 조건문을 구성합니다.

 

단일 if 조건문

조건문의 유형 1 - 단일 if 문(if Statement)

문법 

  • if 다음에 나오는 조건식을 체크합니다.(조건식의 결과는 true or false)
  • 조건식의 결과가 true이면 if 내부의 코드를 실행합니다.
  • 반대로 조건식의 결과가 false이면 if 내부의 코드를 실행하지 않습니다.
if (조건식) {
	조건식의 결과가 true 인 경우 실행할 코드;
}

예제 코드

age = 18일 때
age = 20일 때

 

중괄호와 들여쓰기(indentation)

  • 조건문의 중괄호{}와 들여쓰기는 필수입니다.
    • 중괄호 {}는 수행할 코드를 구분하는 역할을 합니다.
    • 중괄호 {} 내에서 실행할 코드 작성 시 앞에 들여쓰기는 필수입니다.

만약 실행코드가 1줄이면 중괄호를 생략해도 되지만 웬만하면 중괄호는 다 써주시는게 좋습니다.

 

boolean 자료형과 조건문

boolean 결과를 가지는 명령은 조건식을 구성할 수 있습니다.

예제 

password가 1234가 맞는지 equals함수로 알아본 후 true false에 따라서 loginState = "Succeeded"; 코드가 실행됩니다.


if - else 문의 활용

조건문의 유형 2 : if - else 문

문법

  • 조건식의 결과가 true이면 if 내부의 코드만 실행합니다.
  • 조건식이 결과가 false이면 else 내부의 코드만 실행합니다.
  • (유의) else구문은 if 구문의 조건식 없이 단독으로 사용 불가

예제코드

membership = "VVIP"일 때

if 문에서 걸려서 discountRate = 0.2가 되고

밑의 price = price - (price * discountRate);를 거쳐 8000.0이 나오게 됩니다.

membership = "VIP"일 때

if 문에서 걸리지 않고 else문으로 가서 discountRate 가 0.1이 되고

밑의 연산문에 따라 9000.0이 결과로 출력됩니다.


if - else if - else 문의 개념

다중 조건인 경우 사용합니다.

조건문의 유형 3 : if - else if - else 문

문법

  • if, else if 구문을 통해 조건식을 여러 개 구성할 수 있습니다.
    • else if 문이 여러 번 사용해서 조건식을 여러 번 사용할 수 있습니다.
    • 조건식의 결과가 true인 경우 그 내부코드만 실행합니다.
    • 단 하나의 조건식에 따라서 특정 if 아니면 특정 else if , else 의 내부 코드만 실행된다는 것을 말합니다.
  • if 문은 반드시 최초에 1번 사용 가능합니다.
  • else if 문은 없어가 1번 이상 다중 사용가능합니다.
  • else 문은 없거나 마지막에 1번 사용 가능합니다.

논리 연산자

  • 논리 연산자란 둘 이상의 조건들을 결합하여 최종 true 또는 false 값을 연산하는 것을 말합니다.
    • 단일 조건 - 당신은 한국 사람인가요?
    • 다중 조건
      • 당신은 한국 사람이고, 파이썬 프로그래머인가요?(AND)
      • 당신은 한국 사람이거나, 미국 사람인가요?(OR)

 

AND 연산자

모든 조건이 true인 경우에만 결과가 true가 됩니다.

당신은 한국 사람이고, 파이썬 프로그래머인가요?(AND)
한국사람 AND 파이썬 프로그래머

조건 중 하나라도 false면 결과를 false가 됩니다.

  • 자바에서는 AND연산자를 && 기호로 표기합니다.
  • 모든 조건이 true인 경우에만 결과가 true가 됩니다.
  • 하나라도 false이면 결과는 false입니다.

 

OR 연산자

결합된 조건 중 하나라도 true이면 결과는 true가 됩니다.

당신은 한국 사람이거나, 미국 사람인가요?(OR)
한국사람 OR 미국 사람

모든 조건이 false인 경우에는 결과가 false가 됩니다.

  • 자바에서는 OR 연산자를 || 기호로 표기합니다.
  • OR 연산자의 결과는 boolean 형으로 조건문에서 빈번하게 사용됩니다.
  • 결합된 조건 중 하나라도 true이면 결과는 true가 됩니다.

 

NOT 연산자

  • true는 false로, false는 true로 조건식의 결과를 반대로 바꾸는 연산입니다.
  • 논리 부정 연산자라고도 불립니다.
  • 자바에서는 NOT 연산자를 ! 기호로 표기합니다.
  • NOT 연산자의 결과는 boolean 형으로 조건문에서 빈번하게 사용됩니다.

 

if 문의 중첩(Nested Conditional Statement)

if - else if - else 문 하위에 또 다른 if(-else if-else)문이 중첩된 형태

조건문 중첩의 활용

예시 코드

중첩문 활용

score가 70 이상인지 확인한 후,

맞다면 attendance 가 80이상 인지 아닌지에 대해서 또 확인한다.

아니라면 else 문으로 넘어가게 됩니다.

조건문의 중첩은 코드 가독성의 저하를 유발합니다.

  • 깊은 레벨로 중첩된 조건문은 코드의 가독성을 저하합니다.
  • 복잡도를 낮추고 가독성을 높이기 위한 고민이 필요합니다.
    • 조건을 단순화 할 수 있을지 고민합니다.
    • 다형성의 활용에 대해 생각해봐야합니다.
  • Clean code에 대해서 공부해야합니다.
    • clean control structure

 

Switch - case 문

  • 조건문을 switch - case 문으로 표현 가능합니다.
  • 조건식의 경우의 수가 많아지더라도 간결하게 표현할 수 있습니다.
  • 처리속도가 if - else if 문보다 빠릅니다.

switch - case

문법

  • switch 문에는 조건식을 기재하고 중활호{} 로 블록을 만듭니다.
  • case문에는 조건식에 대한 결과 값을 명시하고, 끝에 콜론(:)을 붙입니다.
  • case 문 내에는 각각 수행할 코드와 끝에 break; 을 작성해야합니다.
  • default: 문을 작성할 수 있습니다.
  • default문은 조건식의 결과와 일치하는 case문이 하나도 없을 경우 수행하는 코드입니다.

 

switch - case 문의 흐름

  1. switch 문의 조건식을 계산합니다.
  2. 결과와 일치하는 case 문을 찾아서 코드를 수행합니다.
  3. break 문을 만나면 switch 문을 빠져나갑니다.
  4. 만약 결과와 일치하는 case 가 없는 경우 default 문을 수행합니다.
  5. switch 문의 중괄호가 끝나면 switch 문을 빠져나갑니다.

 

break 문

  • break 문을 만나면 switch 구문을 빠져나갑니다.
  • break 문을 통해 case 문의 코드 실행 영역을 구분할 수 있습니다.
  • break 문은 생략 가능합니다. 이 경우에는 switch 문이 종료될 때까지 모든 문장을 수행합니다.

 

switch - case 에 OR 조건 활용하기

break 문을 생략 가능, 이 경우 switch 문이 종료될 때까지 모든 문장을 수행합니다.

첫 코드에 대한 결과
두번째 코드에 대한 결과

switch - case 문의 제한

  • switch 조건식의 결과는 정수 또는 문자열이어야 합니다.
  • case 문에는 정수 상수, 문자열 상수만 올 수 있습니다.(변수와 실수는 불가능합니다.)

적용되는 경우
적용 불가
적용 불가

case문에 변수 또는 실수가 오면 에러가 발생합니다.

 


다음 게시물에서는 Java에서 배열에 대해 공부해보겠습니다!

열심히 나아가는 개발자 이었습니다.

모두 모두 파이팅! 

go go!

코드프레소 URL: https://www.codepresso.kr/

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr

 

728x90
반응형