5단 분석법
순서 | 분석 | 단어 | 내용 |
1 | 일반 명사 | 조건 | 어떤 일을 진행하거나 진행하지 못하게 하기 위하여 갖춰야 할 상태 또는 요소 |
문 | 문장의 문 | ||
조건문 | 어떤 일을 진행하거나 진행하지 못하게 하기 위하여 갖춰야 할 상태 또는 요소를 나타내는 문장 | ||
2 | 고유 명사(정보통신) | 조건문 | 어떤 조건이 주어질 때 어떤 동작을 수행하도록 하는, 즉 조건에 따라 실행이 달라지게 할 때 사용되는 문장 |
3 | 사용 이유 | 조건문 | 주어진 조건이 만족될 때만 특정 동작을 수행하기 위해서 |
4 | 사용 방법 | 조건문 | ‘if’, ‘else if’, ‘else’ 문을 사용하여 조건을 설정하고, 해당 조건에 따라 동작할 코드 블록을 작성 |
5 | 다른 기술과의 비교 | 조건문 | - |
조건문의 정의
조건문은 ‘조건’과 문장의 ‘문’이 합쳐진 단어입니다.
일반 명사
조건 | 어떤 일을 진행하거나 진행하지 못하게 하기 위하여 갖춰야 할 상태 또는 요소 |
문 | 문장의 문 |
조건문 | 어떤 일을 진행하거나 진행하지 못하게 하기 위하여 갖춰야 할 상태 또는 요소를 나타내는 문장 |
조건의 일반 명사는 “어떤 일을 진행하거나 진행하지 못하게 하기 위하여 갖춰야 할 상태 또는 요소” 입니다.
문은 “문장의 문”을 뜻합니다.
즉, 조건문의 일반 명사는 “어떤 일을 진행하거나 진행하지 못하게 하기 위하여 갖춰야 할 상태 또는 요소를 나타내는 문장” 입니다.
삶을 살아가면서 여러 이유로 다양한 상황이 일어날 것이고, 생각을 할 수 있는 사람이다보니 다양한 상황마다 실시간으로 대처하고 있을 것입니다.
예를 들면 편의점에서 계산 하는 상황을 생각해볼 수 있습니다.
편의점에서 물건을 계산할 때 우리는 크게 ‘현금’ 과 ‘삼성페이’라는 결제 수단 중 한 가지를 선택하여 결제를 진행하게 됩니다. 이것 또한 조건에 따라 결과가 달라지는 행위라고 할 수 있습니다.
현금 결제를 선택했을 경우
1.
지갑에서 현금을 꺼낸다.
2.
직원에게 현금을 건네 준다.
3.
잔돈을 돌려받는다.
삼성페이 결제를 선택했을 경우
1.
주머니에서 갤럭시를 꺼낸다.
2.
직원에게 갤럭시를 건네 준다.
3.
결제가 되고 갤럭시를 돌려받는다.
위와 같이 조건에 따라 결과가 달라지게 됩니다.
그렇다면, 조건문의 고유 명사는 무엇일까요?
고유 명사
조건문 | 어떤 조건이 주어질 때 어떤 동작을 수행하도록 하는, 즉 조건에 따라 실행이 달라지게 할 때 사용되는 문장 |
조건문의 고유 명사는 “주어진 조건에 만족할 때만 수행되는 문장” 입니다.
컴퓨터언어에서의 조건문이란 “어떤 조건을 줄 때 어떤 동작을 수행하도록 하는, 즉 조건에 따라 실행이 달라지게 할 때 사용되는 문장”이라고 합니다.
이해가 조금 쉬워지도록 한 가지 정의를 더 알아볼까요?
영어에서의 조건문
영어에서의 조건문은 가정법과 같다고 할 수 있습니다. 가정법은 어떤 가정이나 가설에 관해 이야기를 할 때 사용하는 문법적 방법이라고 합니다. 가정법은 아래와 같은 4가지 형태를 보이고 있습니다.
1. 만약 ~ 라면, ~ 했을 텐데 |
2. 만약 ~ 라면, ~ 안했을 텐데 |
3. 만약 ~ 가 아니라면, ~ 했을 텐데 |
4. 만약 ~ 가 아니라면, ~ 안했을 텐데 |
이 가정법을 사용해서 예시 문장을 한번 만들어보겠습니다.
1. 만약 제주의 온도가 10도라면, 야외에서 운동했을 텐데 |
2. 만약 제주가 육지라면, 비행기를 안탔을 텐데 |
3. 만약 제주가 섬이 아니라면, 택배가 빨리 왔을 텐데 |
4. 만약 제주가 본가가 아니라면, 제주에 안왔을 텐데 |
주어지는 조건마다 결과가 달라지는 것을 확인할 수 있습니다.
가정법은 영어로도 설명해볼 수 있습니다. 한글보다 영어의 형태로 보는 것이 이해가 더 쉬울 수 있습니다.
한글 |
만약 제주의 온도가 10도라면, 야외에서 운동했을 텐데
아니라면, 실내에서 운동했을 텐데 |
영어 |
If the temperature in Jeju is 10 degrees, I would work out outdoors.
Else, I would work out indoors. |
위 예시에서는 ‘the temperature in Jeju is 10 degress(제주 온도가 10도라면)’ 이 조건이 되는 것이고,
‘I would. work out outdoors(야외에서 운동했을 텐데)’ 가 조건에 따른 행위가 되는 것입니다.
아니라면(Else) 의 행위는 ‘I would work out indoors(실내에서 운동했을 텐데)’ 가 되는 것입니다.
조건문의 정의에 대해서 알아 보았으니, 조건문을 사용하는 이유에 대해서 알아보도록 하겠습니다.
사용해야하는 이유
조건문 | 주어진 조건이 만족될 때만 특정 동작을 수행하기 위해서 |
조건문의 사용 이유는 “주어진 조건이 만족될 때만 특정 동작을 수행하기 위해서” 입니다.
프로그램은 시작하는 순간부터 종료되는 순간까지 어떠한 동작이든 동작을 진행합니다.
개발자들은 사용자들이 프로그램을 사용할 수 있도록 작성한 코드를 실행파일(exe 등)로 바꿔 제공합니다.
실행 파일로 바꿔 사용자에게 제공된 후 부터는 개발자가 실시간으로 코드를 수정할 수 없습니다.
위와 같이, 프로그램이 개발자의 손에서 벗어난 후에도 다양한 상황에 따라 프로그램의 동작이 달라질 수 있어야 합니다.
즉, 사용자의 입력이나 특정 상황에 따라 프로그램의 시나리오가 다양하게 변화할 수 있어야 합니다.
홈페이지를 이용하기 위해서 로그인을 하려고 합니다.
우리 로그인을 할 때 이메일 또는 비밀번호를 다르게 입력한다면 보편적인 홈페이지는 사용자가 어떤 것을 잘못 입력 했는지를 알려줍니다.
위처럼 경고 메시지를 주기 때문에 사용자는 어떠한 것을 잘못 입력 했는지를 파악할 수 있습니다.
하지만 개발자가 ‘사용자가 올바르게 이메일 또는 비밀번호를 입력하지 않았을 때’ 의 조건에 대한 동작을 만들어놓지 않았다면 홈페이지를 이용하려는 사용자는 자신이 어떠한 것을 잘못 입력했는지 파악할 수 없을 것입니다.
이처럼 내가 생각했던 상황보다도 훨씬 더 많은 여러 가지 상황이 발생할 수 있습니다.
이러한 상황들을 다양하게 처리하기 위해 조건문은 개발자에게 필수적인 도구입니다.
조건문을 사용하면 프로그램이 다양한 상황에 대응하고 필요한 동작을 수행할 수 있도록 구현할 수 있습니다.
사용 이유에 대해 알아보았으니, 사용 방법을 알아보도록 하겠습니다.
사용 방법
조건문 | ‘if’, ‘else if’, ‘else’ 문을 사용하여 조건을 설정하고, 해당 조건에 따라 동작할 코드 블록을 작성 |
조건문의 사용 방법은 “‘if’, ‘else if’, ‘else’ 문을 사용하여 조건을 설정하고, 해당 조건에 따라 동작할 코드 블록을 작성” 입니다.
컴퓨터는 일반적으로 위에서부터 아래로 한 줄씩 코드를 읽습니다.
또한 컴퓨터는 영어를 쓰는 과학자들이 발명하였습니다. 그래서 코드를 읽을 때 영어를 읽는 다는 생각을 하고 코드를 읽는 다면 이해하기가 더 쉬워질 것입니다
if 문
조건문의 가장 기본인 if 문입니다.
만약 조건이 참일 경우, 실행을 했을텐데 |
위의 가정법을 if 문으로 표현해보겠습니다.
Javascript
Python
Java
Dart
'조건' 부분에는 참이나 거짓을 평가할 수 있는 표현식이 들어갑니다.
만약 이 조건이 참(true)으로 평가된다면, 중괄호 ‘{}’ 안에 있는 코드가 실행됩니다.
반면, 조건이 거짓(false)으로 평가된다면, 중괄호 안의 코드는 실행되지 않습니다.
사용 예시
만약 제주가 섬이 아니라면, 택배가 빨리 왔을 텐데 |
Javascript
Python
Java
Dart
if-else 문
조건이 거짓이면 특정 동작을 해야 할 경우 사용하는 조건문입니다.
만약 조건이 참일 경우, A를 실행 했을 텐데 |
아니라면 B를 실행 했을 텐데 |
위의 가정법을 if-else문으로 표현해보겠습니다.
Javascript
Python
Java
Dart
if 문에 else가 추가된 것입니다.
if 문-에선 조건이 거짓일 경우 중괄호 안의 코드(위 예시의 A)를 실행하지 않았다면 if-else 문에서는 조건이 거짓일 경우 else 중괄호 안의 코드(위 예시의 B)가 실행됩니다.
사용 예시
만약 제주가 육지라면, 비행기를 안 탔을 텐데 |
아니라면, 비행기를 탔을 텐데 |
Javascript
Python
Java
Dart
if-else if-else 문
여러 가지 조건을 거쳐야 할 때 사용하는 조건문입니다.
만약 조건1이 참일 경우, A를 실행 했을 텐데 |
만약 조건1이 거짓인데 조건2가 참일 경우, B를 실행 했을 텐데 |
아니라면 C를 실행 했을텐데 |
위의 가정법을 if-else if-else 문으로 표현 해보겠습니다.
Javascript
Python
Java
Dart
조건을 여러 가지 검사해야 할 때 사용합니다.
첫 번째 if 문의 조건이 참이라면 if 문 중괄호 안의 코드(위 예시의 A)를 실행하고 조건문을 끝냅니다.
만약 첫 번째 조건이 거짓이라면 그다음 else if 문으로 넘어가 조건2를 검사합니다.
만약 조건 2가 참이라면 else if 문 중괄호 안의 코드(위 예시의 B)를 실행하고 조건문을 끝냅니다.
만약 조건 2가 거짓이라면 else 중괄호 안의 코드(위 예시의 C)를 실행하고 조건문을 끝냅니다.
if-else if-else 문에서는 여러 가지 조건을 검사할 수 있습니다. else if 가 한 개가 아닌 여러 개를 작성할 수 있습니다. if-else if-…-else if-else와 같은 식으로 작성할 수 있는 것입니다.
사용 예시
만약 제주의 온도가 10도라면, 야외에서 운동 했을 텐데 |
만약 제주의 온도가 10도가 아니고 -1도라면, 실내에서 운동 했을 텐데 |
아니라면, 운동 안 할 텐데 |
Javascript
if (jeju_temperature == 10) {
console.log('야외에서 운동 했을 텐데');
} else if (jeju_temperature == -1) {
console.log('실내에서 운동 했을 텐데');
} else {
console.log('운동 안 할 텐데');
}
JavaScript
복사
Java, Python, Dart
switch 문
if-else if-else 문과 비슷하지만 쓰임이 조금 다릅니다.
조건은 한 가지인데 여러 가정이 나올 수 있을 때 주로 사용하는 조건문입니다.
만약 조건1이 A라면, A를 실행 했을 텐데 |
만약 조건1이 B라면, B를 실행 했을 텐데 |
만약 조건1이 C라면, C를 실행 했을 텐데 |
아니라면 D를 실행 했을 텐데 |
위의 가정법을 switch 문으로 표현 해보겠습니다.
Javascript
switch (조건1) {
case A:
// A를 실행
case B:
// B를 실행
case C:
// C를 실행
default:
// D를 실행
}
JavaScript
복사
Java, Dart, (Python은 switch문 없음)
switch 문은 주어진 표현 식의 결과 값을 여러 case 중 하나와 비교하여, 일치하는 case의 코드를 실행합니다.
여러 if-else 문을 사용하는 것보다 간결하고 명확하게 여러 조건을 비교할 수 있습니다.
사용 예시
만약 개발 실력이 |
상 이라면 최고의 개발자 일텐데, |
중 이라면 더 노력해야하는 개발자 일텐데, |
하 라면 개발 입문자 일텐데, |
아니라면 개발 포기자 일텐데 |
Javascript
Python
Java
Dart
연산자
순서 | 분석 | 단어 | 내용 |
1 | 일반 명사 | 연산 | 식이 나타낸 일정한 규칙에 따라 계산함 |
자 | 문자의 자 | ||
연산자 | 식이 나타낸 일정한 규칙에 따라 계산하는 것을 표현하는 문자 | ||
2 | 고유 명사(정보통신) | 연산 | 산술 논리 장치에 논리연산을 수행하는 일련의 과정 |
연산자 | 연산을 수행하기 위해 사용되는 기호 | ||
3 | 사용 이유 | 연산자 | 값을 다루고 계산하여 원하는 결과를 얻기 위해서 |
4 | 사용 방법 | 연산자 | 수행하고 싶은 연산에 해당하는 연산자를 사용 |
5 | 다른 기술과의 비교 | 연산자 | - |
정보통신 업계에서 연산자의 고유 명사는 “연산을 수행하기 위해 사용되는 기호” 입니다.
조건문에서 작성해야 하는 ‘조건’ 에는 일반적으로 연산자를 사용한 문법을 작성하게 됩니다.
연산의 종류는 많지만, 이번 섹션에서는 기본적인 연산 2가지만 설명하겠습니다.
연산자와 같은 문법 들은 앞으로 자주 등장합니다. 모든 문법을 외우고 프로그래밍을 하는 방식 보다는 필요한 개념이 있으면 그때그때 검색을 통해 자연스럽게 습득하는 방식을 추천합니다.
비교 연산
No | 이름 | 기호 | 예제 | 설명 |
1 | 보다 큼 | > | a > b | 왼쪽 값이 오른쪽 값보다 큰 경우 True
왼쪽값이 오른쪽값보다 작은 경우 False |
2 | 보다 작음 | < | a < b | 오른쪽 값이 왼쪽 값보다 큰 경우 True
오른쪽 값이 왼쪽 값보다 작은 경우 False |
3 | 다음보다 크거나 같음 | >= | a >= b | 왼쪽 값이 오른쪽 값보다 크거나 같으면 True, 왼쪽값이 작으면 False |
4 | 다음보다 크거나 작음 | <= | a <= b | 왼쪽 값이 오른쪽 값보다 작거나 같으면 True, 왼쪽값이 크면 False |
5 | 같음 | == | a == b | 왼쪽 값과 오른쪽 값이 같은 경우 True, 같지 않으면 False |
6 | 같지 않음 | != | a != b | 왼쪽 값과 오른쪽 값이 같은 경우 False, 같지 않으면 True |
7 | 값과 타입이 모두 같음 | === | a === b | 왼쪽 값과 오른쪽 값이 같고, 데이터타입이 같은 경우 True, 둘 중 하나라도 다르다면 False |
8 | 값 또는 타입이 다름 | !== | a !== b | 왼쪽 값과 오른쪽 값이 다르거나, 데이터타입이 다른 경우 True, 두 가지 모두 같다면 False |
위의 표는 비교연산자를 표로 정리해둔 것입니다.
보편적으로 수학적 표기법과 같지만, 위의 산술연산 부분에서 설명한 것처럼 같다는 의미의 등호(=)는 ‘==’를 사용하는 것을 볼 수 있습니다.
‘==’ 와 ‘!=’ 는 알겠어요. 근데 ‘===’ 와 ‘!==’ 는 뭐에요?
Javascript
논리연산
No | 이름 | 기호 | 예제 | 설명 |
1 | 논리곱 | and | a and b | 두 개의 논리값이 모두 참(True)일 때만 결과가 참이 되는 논리 연산 |
2 | 논리합 | or | a or b | 두 개의 논리값 중 하나 이상이 참(True)일 때 결과가 참이 되는 논리 연산 |
3 | 논리 부정 | not | not a | 논리값의 반대를 나타내는 논리 연산입 |
논리 연산은 한글로 이해를 해보면 더욱 쉽게 이해될 수 있습니다.
논리곱은 ‘그리고’, 논리합의 경우는 ‘또는’, 논리 부정의 경우 ‘반대’ 라고 이해하시면 됩니다.
a와 b라는 논리값이 존재합니다.
여기서 a && b를 해석하면 ‘a 그리고 b’ 가 됩니다.
‘a || b’ 는 ‘a 또는 b’ 가 될 것이고 ‘!a’ 는 ‘a의 반대’ 가 될 것입니다.
논리곱의 경우 두 개의 논리값이 True인 경우 True, 하나라도 False이면 False가 됩니다.
논리합의 경우 두 개의 논리값 중 한 개만 True이면 True가 됩니다.
위 내용을 컴퓨터언어로 표현하면 아래의 표와 같이 사용할 수 있습니다.
No | 이름 | 기호 | 예제 |
1 | 논리곱 | && | a && b |
2 | 논리합 | || | a || b |
3 | 논리 부정 | ! | !a |
아래는 논리연산을 한 눈에 정리한 표입니다.
a | b | a && b | a || b | !a |
True | True | True | True | False |
True | False | False | True | False |
False | True | False | True | True |
False | False | False | False | True |