본문 바로가기
컴퓨터공학/자바프로그래밍

6. 조건문 심화

by meow0110 2024. 6. 29.

■ else - if : 
- 중첩된 if 문의 변형

- if - else 문으로 변환이 가능하다.

- 일부 if - else 문이 else - if 조건문으로 변환이 가능하다.  (모든 if - else 문은 else - if로 변환할 수 없다.)

- switch 문으로의 변환이 가능하기도 하다.

 

 

■ 80~89?

80=< S(변수) =< 89    라고 표현하면 안된다. 각각 나눠야 한다. 프레젠테이션 가장 오른쪽의 그림처럼.

즉, 80=< S 와   S=< 89 를 이용해서 표현해야 한다.

if (   (80=<S)   &&   (S=<89)  )  처럼 표현해야 한다. 

여기서 =< 는 관계연산자,  &&는 논리연산자이다. 

 

■ 앞서 봤던 도식화를 좀 더 단순화 시킨 것이다.

■ 위의 주황색 false는 else의 영역이라 보면 된다. 즉 90점 이상의 영역이 아닌, else 나머지라 보는 것이다. 

 

 

 

 

 

■ switch 조건문 : 

- if 문의 변형이다.

- if 문 조건문의 부분 집합
- 등가 비교를 기반으로 함

- 정수형 (문자도 포함) 변수의 등가 비교 연산만 가능하다. (실수 등가 비교 연산은 안됨)

- break 문을 이용하여 다양한 제어가 가능하다.

- if 문으로 변형할 수도 있다.

 

■ break 문 개념 : switch 블록에서 break 명령은 switch 블록을 벗어나게 함

■ 이 문장을 스위치문으로 바꾸면 아래가 된다.

 

■ 앞서 본 문장을 스위치로 해서 바꾼 것이다.

■ 앞서 문장 중에  (정수형 변수 혹은 정수가 값인 연산 == 정수형 상수 값 N) 이라는 문장이 있다.

  위의 문장    Switch로 바꿧을 때
  (정수형 변수 혹은 정수가 값인 연산) >> switch (정수형 변수 혹은 정수가 결과 값인 연산) 
  (정수형 상수 값 N) >> case 정수형 상수 값 1 :  (끝에 : 를 쓴다.)

■ 위와 같이 바뀐 것으로 보면 된다.

■ switch와 case가 합쳐져서 if문과 같은 역할을 해준다.

 

■ defalut : 위의 조건에 아무것도 해당되지 않을 경우다. 즉 case마다 해당이 안되서 계속 내려오다가 마지막에 멈추는 곳이라 생각하자.

 

■ break : 스위치 문 안에서 사용된 브레이크는, 스위치 문의 블록을 벗어나라는 뜻.

예를 들면, switch 변수 값과 상수 값1 이 같으면 작업 1을 수행한 다음에 끝내라는 뜻이다.

즉, 결론적으로 case를 수행하면 거기서 끝내는 것이다. 밑의 다른 case로 가는 것이 아닌 해당 문장을 끝낸다고 생각하면 될듯 하다.

 

■ 스위치는 별도의 조건문이라 생각하면 된다. 그리고 else if 보다 훨씬 넓은 사용 범위를 가진다. 

 

 

■ break가 있을 경우의 순서도이다.

- 작업1, 작업2...작업N 등  작업 한개가 끝나면 바로 작업Q 로 가서 끝내게 된다. 이것이  break다. 즉, 작업1에 해당되서 해당 작업1을 끝낸다고 작업2로 넘어가는 것이 아닌, 작업Q로 가서 끝내는, 블록을 벗어난다고 생각하자.

 

■ break가 없는 경우.

즉, 작업1이 끝나면 바로 작업Q로 끝내는 것이 아닌, 다음 case쪽으로 흘러가게 된다. if else랑 완전히 달라지게 된다. 

 

 

 

 

 

■학습 정리

1. else - if 문

  • if - else 문의 변형
  • 가독성을 높일 수 있는 방법
  • 경우에 따라 switch 문으로 변형이 가능

2. switch 조건문

  • 정수형 변수의 등가 비교 연산을 활용
  • break 문을 이용하여 다양한 제어가 가능
  • else - if 문과 유사한 부분이 상당히 존재