학습목표
키워드 : for, while, do while
연산자 : <, >, >=, <=, !=, ==, +=, *=,-=, /=, %=
함수 : fabs()
C의 세 가지 루프 구조 : while, for, do while
관계 연산자를 사용하여 루프 제어 표현식 만들기
그 밖의 연산자
루프와 함께 사용하는 배열
리턴값이 있는 함수 만들기
[while 루프]
- 아래 코드를 보면 scanf에도 반환값이 존재한다는 것을 알 수 있음.
- status = scanf("%ld", &num); 이 부분을 보면 알 수 있음. scanf 반환값을 status에 대입함.
- scanf는 데이터를 받은 갯수를 반환함!! 혹시 몰라서 정수 2개 받는 scanf를 써봤는데, 2가 출력되는 걸 확인했음!!!!!
- 설명 : 여기서 q를 누르면 종료된다고 되어있는데, 이건 숫자가 아닌 다른 걸 쓰면 무조건 종료됨! 이유를 교수님께서 설명해주셨음! 과정을 여기서 말로 설명하면 이해가 될진 모르겠지만, 적어보겠음.
- 1. scanf로 정수 10 입력
- 2. num에 10 저장
- 3. status에 1 저장 (데이터가 1개니까)
- 4. 반복됨
- 5. scanf로 11d 입력
- 6. num에 11 저장 (num은 정수형이니까 문자인 d는 버퍼에 남아있음!!!!)
- 7. status에 1 저장 (데이터가 1개니까)
- 8. scanf 입력 종료 ==> 버퍼에 문자가 담겨있어 정수입력이 종료되었다고 판단함.
- 9. status에 0 저장
- 10. while문 조건 '거짓' ==> 종료
// 리스트 6.1 - summing 프로그램
#include <stdio.h>
int main()
{
long num;
long num1;
long sum = 0L;
int status;
printf("합을 구할 정수를 하나 입력하시오");
// q 말고 다른 문자 써도 종료됨!
printf("(끝내려면 q) : ");
status = scanf("%ld", &num);
// scanf는 데이터를 받은 개수를 반환함!! 그래서 이거 작동함..헐랭방구
// 10을 입력함. => num에 10이 저장됨 => status에 1이 저장됨 => scanf로 10 넣어 => num = 10 저장 => status = 1
// => 또 while문 돌아 => scanf에 q(문자) 입력해 => num에 아무것도 저장이 안됨 => status = 0 => while문 다시 돌아오면 => 종료
// 만약 11q를 넣었어 => num = 11 => status = 1 => 다음 while 회전 => q가 버퍼에 남아있으니까 종료됨!
while(status == 1)
{
sum = sum + num;
printf("다음 정수를 입력하시오(끝내려면 q) : ");
status = scanf("%ld", &num);
}
printf("입력된 정수들의 합은 %ld입니다.\n", sum);
return 0;
}
★ while문
- while문은 반복이 언제 끝날지 모르는 상황에 주로 사용
- 참(True) : 0이 아닌 모든 값
- 거짓(False) : 0
while (조건)
{
// 수행할 문장
}
★ for 루프
- for문은 반복의 종료 시점을 아는 상황에 주로 사용
- for문은 초기화, 조건검사, 갱신으로 이루어짐.
for (초기화 ; 조건검사 ; 갱신)
{
// 수행할 문장
}
★ do while문
- while이랑은 비슷하지만, 다른점이 있음.
- while은 우선 조건을 검사해서 조건이 '참'이면 while문 안의 문장이 실행됨.
- 반면에 do while문은 조건과 상관없이 무조건 한번은 실행됨. 한번 실행된 이후에 조건검사 진행하여 '참'이면 반복됨.
★ 배열
- 이번은 배열 찍먹! 자세하게 하진 않음. 뒤에 다시 나온다고 함,,,, 무섭도다,,,, 저번 시간에 배운 문자열 정도 했음!
- 배열도 똑같이 0부터 시작!!
오늘은 여기까지 배우고 다시 별찍기함 ㅋㅋㅋ
별찍기 은근 재밌다링
'C > 본수업' 카테고리의 다른 글
[2025.03.12] Ch.06_C의 제어문: 루프_별찍기 (0) | 2025.03.12 |
---|---|
[2025.03.12] Ch.06_C의 제어문: 루프_연습문제 (0) | 2025.03.12 |
[2025.03.12] Ch.05_연산자, 표현식, 문장_연습문제 (0) | 2025.03.12 |
[2025.03.11] Ch.05_연산자, 표현식, 문장 (0) | 2025.03.12 |
[2025.03.11] Ch.04_문자열과 입출력 포맷 (0) | 2025.03.11 |