■ 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 문과 유사한 부분이 상당히 존재
'컴퓨터공학 > 자바프로그래밍' 카테고리의 다른 글
8. while문, 반복문의 중첩 (0) | 2024.07.08 |
---|---|
7. 컴퓨터의 강점을 극대화하는 반복문 (0) | 2024.06.29 |
5. 프로그램을 프로그램답게 만드는 조건문 (0) | 2024.06.12 |
4. 변수의 형 변환과 기본 연산자 (0) | 2024.06.05 |
3. 데이터를 담는 공간 변수와 기본 연산자 (0) | 2024.05.30 |