2023. 7. 9. 14:44ㆍlanguage : p_study/c language
7월 1주차 학습 할 C언어 study 목차는 다음과 같다.
1. 변수와 자료형
2. 수식자와 연산자.
3. 조건문
4. 반복문
3. 조건문
컴퓨터 프로그램을 작성할 때 기본적인 제어구조가 3가지 있다.
1. 순차 구조 : 명령어들이 순차적으로 실행되는 구조
2. 선택 구조 : 여러 개 중에서 하나의 명령어를 선택하여 실행되는 구조
3. 반복 구조 : 동일한 명령어가 반복되면서 실행되는 구조
✅ if - else 문
왜 선택구조가 필요할까?
선택 구조는 조건을 검사하고 조건에 따라 실행되는 명령어를 다르게 할 수 있다.
예를 들어 비가 올때 지하철로 출근하고 그렇지 않으면 승용차로 출근하는 사람이 있다고 가정하자.
이 경우 조건은 비가 왔는지 오지않았는지 여부이다.
만약에 비가 왔다면 지하철을 타고 출근하고, 비가 오지 않았다면 승용차로 출근한다.
형식 예제
if (조건식) { if (number > 0) {
printf ("양수입니다.\n"
문장1; }
} else {
else { printf("음수이거나 0입니다.\n");
문장2; }
}
문제 설명
➡ 만약 조건식이 참이라면 문장 1이 실행되고 그렇지 않으면 문장2가 실행된다.
조건에 따라 실행되는 문장이 하나일 경우에는 중괄호 생략이 가능하고, else이하도 생략할 수 있다.
if -else문 개념을 익혔으니, codeup을 통해 문제를 풀어보자.
<codeup_ 1066 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝/홀 출력하기>
세 정수 a, b, c가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자.
참고
if(조건)
{ //코드블록1 시작
... 실행...;
...
}
else
{ //코드블록2 시작
... 다른실행...;
...
}
의 조건/선택 실행구조는 주어진 “조건”을 검사해 참인 경우에는 코드블록1을 실행하고,
거짓인 경우에는 코드블록2를 실행한다.
예시
if(a%2==0)
{
printf(“even”);
}
else
{
printf(“odd”);
}
** else는 if 없이 혼자 사용되지 않는다. 또한, else 다음에 조건이 없는 이유는?
참이 아니면 거짓이고, 거짓이 아니면 참이기 때문에...
즉 if문의 조건식의 판별 결과는 2가지 경우(참 또는 거짓)로 계산되는데,
else 부분은 if문의 조건식의 결과가 거짓인 경우에 해당하기 때문이다.
** 실행해야 할 명령들이 여러 개일 때 코드블록 기호 { }로 묶어 주는데,
코드블록의 내용이 논리적으로 1개 단위라면 코드블록 기호를 생략할 수 있다.
if(a%2==0) printf("even");
else printf("odd");
제출 코드
출력 결과
오잉? 왜 에러가 떳지? 하고 보니까 마지막꺼가 출력이 안된다.
일단 다시 코드를 수정해보는 거로 해야겠다.
✅ 조건 연산자
조건식 ? 값1 : 값2
위 조건 연산자는 if-else문과 유사한 기능을 하는 조건 연산자이다.
조건 연산자는 c에서 유일하게 3개의 피연산자를 가지는 삼항 연산자이다.
➡ 조건 연산자에서 조건식이 참일 경우 값1이 , 조건식이 거짓일 경우 값2가 반환된다.
복잡한 조건식을 사용하는 if-else문
✅ 논리 연산자
논리 연산자는 여러 개의 조건을 조합하여 참인지 거짓인지를 따질 때 사용한다.
논리 연산자의 종류는 다음과 같다.
연산 | 의미 |
x && y | AND 연산, x와 y가 모두 참이면 참, 그렇지 않으면 거짓 |
x | | y | OR연산, x나 y중에서 하나만 참이면 참, 모두 거짓이면 거짓 |
! x | NOT연산, x가 참이면 거짓, y가 거짓이면 참 |
✅ AND 와 OR 연산자
AND와 OR연산자의 쓰임을 알아보자.
예제 ➡ ( age <=30 ) && ( toeic >= 700 )
예제를 살펴보면, 위의 수식에서 age가 30 이하이고 toeic이 700이상인 경우에만 참이 된다.
예를 들어 나이가 29살이고 토익이 800인 경우에는 참이 된다는 뜻이다.
AND연산자의 경우에는 조건 중 하나라도 거짓이면 전체 수식의 값은 거짓이된다.
예제 ➡ ( age <=30 ) || ( toeic >= 700 )
같은 예제이지만 논리연산자만 변화되었다.
OR연산자의 경우에는 하나의 피연산자만 참이면 연산 결과가 참이된다.
따라서 나이가 32살이고 toeic점수가 800이거나, 나이가 24살이고 toeic점수가 650이어도 참이 된다는 뜻이다.
✅ NOT연산자
NOT연산자는 피연산자의 값이 참이면 연산의 결과값을 거짓으로 만들고, 피연산자의 값이 거짓이면 연산의 결과값을 참으로 만든다.
개념을 이해했으니 이제 codeup으로 문제를 풀어보자.
<codeup_1054 : [기초-논리연산] 둘 다 참일 경우만 참 출력하기(설명)>
코드
출력 결과
<codeup _1055 : [기초-논리연산] 하나라도 참이면 참 출력하기(설명)>
코드
출력 결과
✅ 연속적인 if 문
if (조건식 1 ) {
}
else if ( 조건식2 ) {
}
......
else {
}
위와 같은 연속적인 if문은 3개 이상의 명령문 중에서 하나를 선택해야할 때 사용하는데,
예를 들면 학생들이 몇점 이상일 때 , 학점(등급)을 부여하는 경우에 조건에 맞는 문장을 실행하도록 할 수 있다.
✅ Switch 문
만약 실행 경로가 여러 개인 경우에는 Switch문을 사용하는 것이 좋다.
break문이 없다면 계속해서 다음 case절의 문장들을 실행하게 되기때문에 Switch문에는 반드시 break문이 있어야한다.
✅ mini project
“사용자가 신호등의 색깔을 입력하면 ”정지“,”주의“,”진행“과 같은 문장을 출력하는 프로그램을 작성하여보자.
예시) 신호등 색깔 입력(R,G,Y):
r 정지!
코드
예제는 Switch문을 활용하는 문제를 풀어보았다.
콘솔창
조건문도 무난하게 공부하긴 했지만, 이렇게 기본적인 문제에서 나아가 더 다양한 예제를 풀어보고 고민도 해보는 시간이
필요할 것같다.
'language : p_study > c language' 카테고리의 다른 글
7월 2주차_C Study 계획서 (0) | 2023.07.10 |
---|---|
7월 1주차_C Study 계획서 (0) | 2023.07.10 |
7월 1주차_C Study 4. 반복문 (0) | 2023.07.09 |
7월 1주차_C Study 2 . 수식자와 연산자 (0) | 2023.07.09 |
7월 1주차_C Study 1 . 변수와 자료형 (0) | 2023.07.04 |