안녕하세요, 어서 오세요 이번 강의에서는 의사 결정에 관해 얘기할
겁니다 특히 if문을요
그래서 c 프로그래밍 언어는 if문의
형태로 일반적인 의사 결정 기능을 제공하죠
지금까지의 문장들은 다 알고 있어요
이제 그 앞에 키워드를 추가할 거예요 괄호 안에도 넣고요
이렇게 생긴 거예요
키워드 다음에 왼쪽과 오른쪽 괄호 안에
식이라는 게 있어요
우린 표현과 구문의 차이를 알죠
그 표현은 참인지 거짓인지 평가해야 해요
그리고 프로그램 발표가 있어요
이건 가장 단순한 종류의 if 문이죠
식을 입력하고 Program 문을 입력하면
슈도코드로 대체할 수 있어요 비가 안
오면 난 수영하러 갈 거야 같은 거죠
그 슈도코드를 c로 번역해보면 슈도코드는 실제
구문은 아니에요
코드로 뭔가를 영어로 설명하는 방식이죠
if문을 c로 하면
여러분이 할 일은 조건을 괄호 안에 넣는 거죠 비가 안 와요
if문 다음엔 단일 문
또는 다중 문이죠
여러 개의 문장이 있다면 중괄호 안에 넣어야죠
하지만 이 사건의 경우
한 가지 진술이 있어요 차체 내부에 If 문구는 수영하러 가겠다는 거죠
비가 안 와야 해요 수영하러 갈게요
그래서 제어 흐름에 있는 거예요 항상 실행하는 건 아니죠 수영하러 갈게요
조건에 따라 다르고 참인지 거짓인지에 따라 다르죠
이 경우엔 코드를 생략할 수도 있어요 순차적인 프로세스가 없어요
if문은 프로그램 문의 실행을 명시화하기
위해 사용됩니다 지정된 조건에 기반해서요 의사
결정 기능이죠 비가 안 올 때만 수영하러 가는군요
그 코드는 if문 본문에서 실행하게 됩니다 비가 오지 않는 경우에요
괄호는 if 블록 안에서 복합문을 위해 필요하고요
예를 들어 비가 안 오면 수영을 하러 가거나 당신이 수영하러
가기 전에 당신이 수영복을 입고 옷을 입고 수영하러
간다고 하면요?
그럼 중괄호를 넣어야 해요
그걸 보여드릴 구체적인 예가 있어요
하지만 중괄호는 필요하지 않아요 단일 문장만 있다면요 옵션이죠
제공할 수도 안 할 수도 있죠
전 보통 if문에서 중괄호를 모두 제공해요 일관성을 위해서요
여기 C# 프로그래밍 언어에서 일반적인 if문의 예가 있어요
이 경우엔 두 개의 변수를 선언하는 거죠 하나는 점수로 하나는 크기로요
점수는 95점, 90점이죠
차체에 단순한 문장이 있고
괄호가 없어요 점수가 큰 것보다 크면 95점이라는
거죠 95가 90보다
크면 불리언이죠 이 경우엔 참으로 평가될 거예요
화면에 보이는 건 잭팟이에요
같은 예제가 있고요 중괄호를 쓰는 것만 빼면요
if문 본문에 하나 이상의 구문이 있으니까요
하단 예제에서 스코어가 큰 경우 if문의
블록 시작엔 왼쪽 중괄호가 있고 if문의
블록 끝엔 중괄호가 있어요
if문의 본체를 언급한 거죠
이 경우엔 두 개의 문장이 있어요 먼저 스코어를 1까지 증가시킨 다음
당신의 승리를 보여줄 거예요.
괄호 대 괄호 대 안 괄호의 차이를 보세요
괄호를 단일 문장에 넣을 수도 있어요 선택 사항이죠
하지만 여러 개의 문장이 있다면 괄호를 사용해야 해요
왼쪽 괄호는 블록의 시작을 나타내고
오른쪽 괄호는 블록의 끝을 나타내죠
If 문은 단일 리프트일 땐 아주 간단해요
키워드 괄호 왼쪽과 오른쪽이 괄호 안에 있을 때요
if문이 좀 더 복잡해지면 그런 식들은 다중 식이 될 수 있어요
우리가 배운 논리 연산자 중 일부를 사용할 수 있습니다
and 또는 Or를 사용할 수 있다는 측면에서요
점수가 큰 것보다 크면 뭔가 다른 게 필요해요
하나의 if 문에서 여러 개의 질문을 받을 수도 있고 분할할 수도 있어요
이건 기본적인 if문의 예입니다
아주 기본적인 구문이죠 if문
끝에는 세미콜론이 없고 printfs
끝에는만 있어요
끝과 시작 괄호만 있어요
if문에 else 문도 추가할 수 있어요
c가 지원하죠 그래서 약간만 추가하면
훨씬 더 유연해질 수 있어요
예를 들어 오늘 비가 어제보다 심하다면
우산을 가져갈
거예요 어제처럼 비가 심하지
않으면 재킷을 벗을 거예요
다른 건 대답에 대한 질문이 거짓일
때 일어나는 일이죠
그럼 재킷 챙겨서 출근할게요
if else 문이 제공하는 게 바로 이런 의사 결정이에요
진실일 때도 뭔가를 하고 거짓일 때도 뭔가를 해요
if와 키워드도 있고 괄호 안에 부울식도 있어요 참인지 거짓인지
평가하는 거죠
그런 다음 참이면 실행된 1번 문이 나오죠
Else는 Else 키워드를 쓰죠
선택 사항이에요 늘 다른 걸 제공할 필요는 없어요 부울 식이 거짓일 때만
뭔가를 하죠 2번 문장이에요
이 경우에도 if 블록이나 else
블록에는 괄호가 없어요 단일 문만
있으니까요
어느 차체든 문장이 하나 이상이면 시작과
끝을 위한 브래킷을 제공해야 해요
if가 있는 else 문의 예가 여기 있네요
이 경우엔 짝수인지 홀수인지를 결정하는 거죠
메인 함수가 있는데 거기로 들어가는 거죠
몇 가지 변수를 만듭니다 하나는 테스트용 숫자 다른 하나는 나머지죠
둘 다 int 타입이죠
쉼표로 분리해서 같은 선에 선언하는 거예요
초기화 안 했어요
코드 다음 줄에서 일부 결과물을 출력해 사용자에게 정보를 입력하도록 하죠
그런 다음 scanf 함수를 사용하죠
정수에서 읽고 있으니 % i나 % d를 쓸 수 있죠
문자열이나 어떤 단어도 읽을 수 없어요
ampersand를 변수 앞에 놓습니다 데이터를 저장할 곳이죠
테스트하기 위해 사용자가 숫자를 입력하죠
그런 다음 2로 입력한 것의 나머지도 얻게 됩니다 왜냐하면 그건 뭔가가
짝수인지 홀수인지를
말해주니까요 하나를 2로 나누고
나머지가 0이면 그게 짝수예요
그게 아니면 이상하죠
이 프로그램에서 중요한 건 조건을 사용하는 하단이에요
지금까지는 한 줄도 빠짐없이 실천했어요
하지만 if문과 괄호 안에 조건이 있다면 나머지
값이 0이면 비교를 위해
항상 =을 사용해야 하는 걸 알 수 있어요 =을 사용하지
않죠 등호는 할당입니다 값에
데이터를 할당하는 거죠 이퀄은 숫자를 비교하는 거예요
하위 변수를 0과 비교하고 있어요
0이면 똑같이 출력할 거예요
Else, Else 키워드는 다음 줄에 있어요 이상하다고 프린트할 거예요
if나 그 외엔 괄호가 없는 게 보이시죠 단일 문장만 있으니까요
이걸 실행해서 코드블록에선 어떻게 작동하는지 보죠
이게 우리 프로그램이에요 방금 말씀드린 것처럼 완전히 똑같이 묘사됐어요
짝수나 홀수를 출력할 거예요 그럼 이걸 만들어보죠
어떤 오류도 없어야 해요
여기 대사가 몇 줄 더 있어요
이 프로그램을 실행하면 짝수 혹은 홀수를
출력할 수 있는데요
테스트할 수 있는 숫자를 묻네요 33을 입력할게요, 이상하죠
홀수라고 나올 거예요 아주 간단한 프로그램이죠
여기서 중요한 건 특정 코드를 실행하지 않는다는 거죠
19번째 줄을 실행하는 거죠 나머지가 0과 같으면요
그렇지 않으면 21번째 줄로 가게 되죠 괄호는 선택 사항이고요
그런 걸 넣으면
IDE가 자동 완성을 해줍니다 아주 근사하죠
하지만 전 보통 그걸 추가하는 걸 좋아해요, 쉽고 코드를
더 가독성 있게 만들거든요
형식에 따라 다르죠
어떤 사람들은 else 문 앞에 브래킷을 두는 걸 좋아해요, 이렇게요
다른 줄에 두는 걸 좋아하는 사람도 있어요, 형식에 따라서요
사실 이건 IDE에서 자동으로 작업될 수 있어요 코드 형식을 지정해서요
하지만 이것도 같은 원리고 훨씬 읽기 쉬워요
더 많은 문을 추가해야 하는 경우 쉽게 추가할
수 있어요 괄호 넣는 걸 걱정할 필요가 없죠
전 괄호를 넣는 습관이 있어요
여기서 또 중요한 건 이 ==예요
동등한 건 안 돼요 등호를 하고 프로그램을 실행하면
큰 차이가 보이실 거예요 아주 간단한 if else
문이죠 아주 아주 유용해요 또 다른 부분이 홀수일 경우 19번째 줄만 실행하게 되죠
안 그러면 22번째 줄을 실행할 거예요
else if 문에 대해 좀 더 얘기해보죠
else도 가질 수 있어요 그렇다면 if에 대해 배웠고 다른 것에 대해서도 배웠죠
else 절에 if문을 추가해 추가적인 복잡한 의사 결정을 처리할 수 있어요
추가 질문을 하는 것과 같죠
원본 if의 조건이 거짓이면 실제로 뭔가를 실행하지 않아요 다른
질문을 할 테니까요
그러니까 if 식 1이면 참이면
실행되는 코드가 있는 거죠
안 그러면, 안 그러면,
그 후에라고 하는데 그건 완전히
합법이죠 else 문 안에 있는 if 문이죠
두 번째 프로그램을 실행해요 안 그러면 다른 걸 실행해야 하죠
그래서 if문이 2상수 논리적 결정에서 3상수 논리적
결정으로 확장되죠
두 가지 질문만 하시네요
첫 번째 답변에 대한 질문이 참이면 프로그램
1문을 실행해요
두 번째 질문을 하세요 첫 번째 질문이 참이거나
거짓일 때만요
그게 참이면 다른 코드는 다른 걸 실행하는 거죠
여기 세 가지 분기가 있는데 각각 다른
코드 라인으로 실행될 수도 있고 되지 않을 수도 있죠
프로그램문 1, 프로그램문 2 또는 프로그램문 3이죠
코드를 다시 써서 다른 if를 사용할 수 있어요
if는 분리된 라인에 있지만 실제로 이런 걸 할 수도 있어요 식
1이 if를 다른 걸 하면요
다른 라인에 둘 필요 없어요 한 줄일 수도 있고
그 밖에 다른 줄일 수도 있어요
여기서 한 가지 까다로운 건 else 절이 실행된다는 거예요
이것도 마찬가지예요 이 else 절은 세 개 모두를
위해 실행되고요
첫 번째 예제에선 약간
혼란스럽죠 두 번째 다른 예제는
다른 if가 거짓일 때만 실행되는 것 같거든요
하지만 첫 번째 표현도 거짓이면 정말 실행되는 거죠
거기에 괄호를 치면 if문을 중첩할 수 있어요
OUTER, Last else는 if answer의
두 번째 질문에 따라만 실행되죠
중첩을 다룰 땐 중첩된 if문과 중첩된 루프를 다루죠
if문에는 if문과 if문이 있죠 else문의
위치를 잘 정해야 해요 else문은
마지막 if문과 일치해야 하니까요
여기 또 다른 예가 있어요 간판 함수를 구현하려고 하는 거죠
0이나 1을 반환할 거예요
이건 3단계 평가예요
이 프로그램이 루틴에서 하는 것은 int, number와
기호에 대한 몇 가지 변수를 만드는 거에요.
사용자가 숫자를 입력하게 하고 그걸 숫자 변수에 저장하는 거죠
숫자가 0보다 작으면 기호는 1이 되죠
0과 같은 숫자라면 0이 되겠죠
그렇지 않으면 둘 다 거짓인 경우 기호는 1이 될 겁니다 양성이란 뜻이죠
else가 얼마나 유용한지 보여주는 예죠
if를 여러 개 추가할 수 있어요 1개밖에 안 보이지만 원하면 100개도 가능해요
그렇지 않으면 숫자가 2가 되고 그렇지 않으면 숫자가 3이 되고 그렇지 않으면 숫자가 4가 되죠
여기 보면 브래킷이 사용되지 않지만 차체 안에
여러 개의 문이 있다면 브래킷이 사용될 거예요
if문을 사용할 때는 많은 논리적
연산자와 비교 연산자, 관계형 연산자를
사용하게 되는 것을 알 수 있죠
여기서 덜 중요한 기호를 사용하고 있군요 논리적 연산자, 기억하세요
앰퍼샌드예요 두 가지는 and와
관계형 연산자로 값을 비교할 수 있죠
이것보다 작거나 이것보다 작거나 이것보다 큰 것을 할 때요
if문 표식에 숫자를 사용할 때 꽤 많이 사용되죠
& &를 사용하면 여러 질문을 하게 돼요
이게 참이고, 이게 참이고 이게 참인지 아닌지를요
다른 if문도 줄이는 방법이죠
0보다 작으면 이 코드를 다시 쓸 수 있어요
그리고 저 간판을 원했다면
지금처럼 할 수 없었을 거예요
하지만 그 안에 & &를 넣고 0보다 작은 숫자가 0이면
0이라고 쓸 수 있죠 그럼 그 기호는 마이너스
1과 0이에요 그걸 구체적으로 할 순 없지만 여기서
여러 질문을 추가할 수 있죠
여기서 좀 어려움이 있는데요 if문을 사용하는 프로그램을 만들 건데요
여기 좋은 예가 있어요 이 예제들을 IDE 안에 넣고 어떻게 되는지 보세요
하지만 다른 경우에는 여러 가지 질문을 할 수 있죠
중첩된 if else 문이죠
if l 문 중첩은 if나 else if 문을 다른 if
문 안에 사용할 수 있다는 뜻이에요
그래서 둥지 틀기라고 하죠
여러 가지를 사용할 수 있고 계속 반복해서 사용할 수 있어요.
둥지 틀기에 대한 제한은 없어요
구문은 이렇게 생겼어요
부울 식이 참으로 같다면 그
안에서 중첩을 할 때는 보통 괄호를 사용해야죠
한 문장씩 쓸 필요는 없지만요 가독성이 훨씬 좋아지니까요
부울식 1이 참이면 그 안에 부울식
2가 참이라고 나오죠
부울 표현 1이 참이 아니면 부울 표현
2는 실행 안 할 거예요
그리고 부울식 2의 본문 안에서 참이면 코드를 실행하죠
중첩된 if문의 예는 이렇게 생겼어요
게임 오버 = 0이면 그 안에 있는 플레이어 투 무브 = 여러분이면 프린트가
나오죠
핵심은 괄호가 없다는 거예요
이해하기가 좀 더 어렵죠 이걸 따르는 유일한 방법은 들여쓰기를 통해서입니다
코드 블록에 if문을 작성할 때 여러분이 하셔야 할 또다른 거죠
블록을 들여쓰기를 해야 읽기가 쉬워요
이 부분에 움푹 들어간 자국이 없다면
다른 부분과 흔적을 맞추기가 얼마나 힘들겠어요?
들여쓰기를 사용하고 아마도 괄호, 괄호 도움말을 써서 더 가독성 있게 만들 거예요
가독성은 아주 중요해요 가독성은 오류를 찾고 빨리 고치게 해주거든요
이 경우에는 화면에 프린트된 이동만 실행합니다
플레이어가 이동하는 값이 u이고 게임 오버 값이 0이면요
제 동작만 스크린에 표시될 거예요 게임이 0일
경우에요 이동하는 플레이어는 U가 아닐 경우에요
마지막 실행은 게임이 0이
아니면 게임 오버예요
세 가지 다른 문장을 인쇄하는
데 세 가지 조건이 있어요
게임이 끝나면 0이라고 쓸 수 있어요
& & & 움직일 사람은 U라고 적고요
하지만 문제는 제 동작이 잘못됐을 수도 있다는 겁니다
여전히 플레이어마다 동작을 비교해야 하니까요
코드를 단순화하기 위해 ampers샌드를 사용할 수도
있고 그러지 못할 수도 있어요 이 경우엔 할 수 없죠 다른 첫 번째가
둥지 틀기 안에 있으니까요
둥지 틀기는 꽤 적용이 가능하고 여러분도 사용하실
테니 익숙해지세요 if 문의 구문은 아주 간단해요
안에 부울 식을 넣고 단일 문에는 괄호를 쓰죠
아니면 괄호를 쓰고요
단일 상태에서는 괄호를 사용하지 않아요 아니면 괄호를 사용하세요
프로그램에서 질문하는
세 번째 방법도 있어요 이건 조건부 연산자라고 합니다 연산자에
대해 얘기할 때 얘기했었죠 하지만 좀 더
이해가 필요하네요
조건부 연산자는 아주 독특한 연산자죠
C동의 다른 오퍼레이터들과는 달라요
c의 연산자 대부분은 우나리 아니면 바이너리죠
유나리란 오퍼레이터가 하나의 인수 또는 하나의 오페란드를 취하는 거죠
이진법으로 보면 양쪽에 수술 자국이 있어요
+ 연산자는 이진법 연산자입니다 왜냐하면 5 + 3, 2 오페란드를
하니까요
네거티브 연산자는 음수 3 같은 거예요
세 번째 선택지도 있어요 삼중으로 작동하는 건데 3번 작동해야 해요
이건 조건부 연산자죠
이 조건부 연수를 나타내는 데 사용되는 기호가 2개 있어요
물음표와 콜론이 문제예요
if else 문과 같아요
첫 번째 오페라랜드가 물음표 앞에 놓여 있죠
그게 조건이에요 이전 예제의 부울식이죠
그리고 물음표와 콜론 사이의 두 번째 것은 if문의
본문이 되는 겁니다 if문이 참인 경우에요
그리고 콜론이 세 번째죠 조건이
거짓으로 평가되면 코드 본문을 실행하는
겁니다 else 문의 본문 같은 거죠
따라서 전환 연산자는 if else 문에 불과해요 속기 기호 표기법이죠
훨씬 빨리 쓸 수 있어요
여기서 다른 점은 괄호가 없다는 겁니다 따라서 단일 식이나
단일 문만 쓸 수 있죠 본문 안에요 물음표 다음이나 콜론 다음에요
조건부 연산자가 두 가지 식 중 하나를
평가할 경우 그게 논리 식인지 조건의 참인지에
따라서요
조건이 거짓이면 식 2가 평가돼요
if else 문과 똑같이 행동하죠
연산자를 작업판과 어떻게 배열하는지도 보세요
물음표 문자는 논리 표현 조건을 따르죠
물음표 오른쪽은 1번과 2번 표현이에요
선택권을 상징하죠
이 연산의 값은 조건이 참일 경우 1의
식 값이 되죠
2번 식의 값이 거짓이면요 제가 말한 그대로예요
예를 들어보죠 읽기 웃기게 생겼네요
무슨 뜻이냐면 x = y가 7보다 크면
어떻게 하느냐는
거예요 숙제를 하는 건가요?
X는 y예요 x가 5고 y가 9라면 x가
9보다 크면 25 x로 숫자를
설정할 거예요 안 그러면 x를 50으로 설정하죠
그래서 먼저 읽으면 혼란스럽죠
그 결과 y가 7보다 크면 x가 25로 설정되고 y가 7보다 크면 50이 되죠
표현에 대한 숙제를 쉽게 할 수 있는 방법이죠
x = y는 7보다 커요
y가 7보다 크면 x는 25 x는 50이죠
그래서 X는 포르노가 있는 거예요
세 번째 연산자와 조건은 할당의 오른쪽에 있어요 일반적으로
이렇게 사용하죠 x는 그 4개의 연산자의 결과라고
하죠
4행 연산자 전부 y가 7보다 크군요 y가 7, 25보다 크면
또는 50이죠 그걸 x에 할당하죠
보통 이렇게 사용하죠 if문을 사용하는
것과 같아요 y가 7보다 크면 x는 25 x는 50이죠
하지만 코드가 훨씬 적죠
이 조건부 연산자의 한계는 조건부
연산자를 이용해 작성된 변수는 2개만 가질 수 있다는 겁니다 최저액수요
그렇게 많이는 못 해요 그래서 좀 제한적이죠 주로 임무에 사용하죠
다양한 사례를 들으며 긴 강연을 마쳤네요
이번 과제에선 더 잘 적용될 거예요
하지만 if문은 톤으로 사용될
거예요 배우기 정말 쉽죠 눈 깜짝할 사이에 구문을
외우게 될 거예요 손바닥 위 괄호,
괄호 if else 키워드까지도요
그리고 때때로 이 조건부 연산자를 사용할 수도 있어요
여러분이 C#에서 더 발전하면 깨닫게 되실 겁니다 이 if문을
작성하는 데에 정말 오래 걸렸네요 한 줄에
작성할 수 있습니다 조건부 연산자를 이용해서요 물음표와
콜론을 이용해서요
조건에 근거한 변수를 배정하는 데 유용하죠 고마워요