7 while 문의 흐름 제어 조건만 만족한다면 무조건 무한 반복!.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

2014 가을학기 계산 입문 연습 #4 지도교수 : 박성우 조교 : 이다훈. Python 을 설치합시다.
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
8. 배열.
제 4 장 프로그램 제어문 C 프로그래밍.
C 5장. 제어문 #include <stdio.h> int main(void) { int num;
제3장 게임기본모듈 Page 153 ~ 182.
Chapter 7. 조건문.
Chapter09 JavaScript 구구단표 만들기
제5장 제어명령
Chapter 07. 반복문.
Lesson 3. 입출력과 제어문.
3. printf()와 데이터 형식.
7. while 문의 흐름 제어.
Chapter 04 C 연산자의 이해.
C언어 콘서트 제6장 반복문.
6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Part 07 제어 구조 ©우균, 창병모 © 우균, 창병모.
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
예제로 배우는 Visual Basic 구구단 작성기로 익히는 반복문
11장. 1차원 배열.
순서도.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
3. while문 반복문의 종류 while 문 while( 조건식 )        문장;.
Chapter 09 반복문.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
어서와 C언어는 처음이지 제14장.
어서와 C언어는 처음이지 제15장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
연산자 (Operator).
제어문 & 반복문 C스터디 2주차.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
Chapter 03. 주석문과 제어문.
제 5장 제어문 Hello!! C 언어 강성호 김학배 최우영.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Chapter 08. 함수.
Control Flow 요약.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
8장. 조건에 따른 흐름의 분기. 8장. 조건에 따른 흐름의 분기 8-1 흐름의 분기가 필요한 이유 상황에 따른 프로그램의 유연성 부여 그림 8-1.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
6장 연습 문제 풀이 학번 : 이름 :조 재한.
-Part1- 제7장 반복문이란 무엇인가.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
[ 단원 04 ] 반복과 배열.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
C++ 프로그래밍 기초 √ 원리를 알면 IT가 맛있다 3장. 연산자.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
Chapter 10 데이터 검색1.
함수, 모듈.
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
제어문Control Statements
어서와 C언어는 처음이지 제21장.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

7 while 문의 흐름 제어 조건만 만족한다면 무조건 무한 반복!

이 장에서 다룰 내용 while 문 1 2 do ~ while 문 기타 제어문 3

01_while 문 while 문의 실행 순서 조건식이 참인 동안 반복할 문장 수행 중괄호가 끝나는 곳에서 조건식으로 돌아와 같은 동작 반복

01_while 문 for 문과 while 문의 사용 형식 비교 0~9까지 출력하는 예 int i; for(i=0; i<10; i++) { printf(“%d \n”, i); } 초기값을 for 문 밖으로 이동 증감식을 for 문의 끝으로 이동 for를 while로 int i; i = 0; while(i<10) { printf(“%d \n”, i); i++; }

[기본예제 7-1] for 문을 while 문으로 바꾸기 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 i=0; 07 08 while ( i < 5 ){ 09 printf("while 문을 공부합니다.\n"); 10 i++; 11 } 12 } 초기값 지정 조건식 증감식

01_while 문 for 문을 while 문으로 변환하는 방법

[기본예제 7-2] for 문을 while 문으로 바꾸기 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap=0; 06 int i; 07 08 [ ① ] 09 while ( i<=10 ) { 10 hap = hap + i; 11 [ ② ] 12 } 13 14 printf(" 1에서 10까지의 합: %d \n", hap); 15 } i = 1; 초기값 지정 조건식 i ++; 증감식

01_while 문 무한루프를 위한 while 문 조건식이 무조건 참이어야 함 for( ; ; )와 동일한 역할

[기본예제 7-3] while 문의 무한루프 만들기 01 #include <stdio.h> 02 03 int main() 04 { 05 int a, b; 06 07 while ( 1 ) 08 { 09 printf ("더할 두 수 입력 (멈추려면 Ctrl+C) : ") ; 10 scanf("%d %d", &a, &b); 11 12 printf("%d + %d = %d \n", a, b, a+b); 13 } 14 } 무한루프 입력 값을 공백으로 분리 출력

[응용예제 7-4] 무한루프를 활용한 계산기 01 #include <stdio.h> 02 03 int main() 04 { 05 int a, b; 06 char ch; 07 08 [ ① ] 09 { 10 printf ("계산할 두 수를 입력 (멈추려면 Ctrl+C) : ") ; 11 scanf("%d %d", &a, &b); 12 13 printf("계산할 연산자를 입력하세요 : "); 14 scanf("%c", &ch); 15 16 [ ② ](ch) 17 { while(1) 무한루프 키보드로 숫자 2개를 입력받음 연산자 입력 switch

[응용예제 7-4] 무한루프를 활용한 계산기 18 case '+' : 19 printf("%d + %d = %d 입니다. \n", a, b, a+b); 20 break; 21 case '-' : 22 printf("%d - %d = %d 입니다. \n", a, b, a-b); 23 break; 24 case '*' : 25 printf("%d * %d = %d 입니다. \n", a, b, a*b); 26 break; 27 case '/' : 28 printf("%d / %d = %f 입니다. \n", a, b, a/(float)b); 29 break; 30 case '%' : 31 printf("%d %% %d = %d 입니다. \n", a, b, a%b); 32 break;

[응용예제 7-4] 무한루프를 활용한 계산기 33 default : 34 printf("연산자를 잘못 입력했습니다. \n"); 35 } 36 } 37 }

02_do~while 문 do~while 문 조건식을 확인하기 전에 ‘반복할 문장’을 수행  무조건 한 번은 실행됨

[기본예제 7-5] do~while 문의 사용 예 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int a = 100; 06 07 while ( a == 200 ) 08 { 09 printf ("while 문 내부에 들어 왔습니다.\n") ; 10 } 11 12 do { 13 printf ("do ~ while 문 내부에 들어 왔습니다.\n") ; 14 } while ( a == 200 ) ; 15 } while 문 실행 : 조건식 먼저 판단 do~while 문 실행 : 먼저 실행한 후에 조건식 판단

[응용예제 7-6] do~while 문의 사용 예 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int menu; 06 07 [ ① ]{ 08 printf("\n손님 주문하시겠습니까 ? \n"); 09 printf("<1> 스테이크 <2> 스파게티 <3> 물 "); 10 printf("<4> 빵 <5> 그만 시킬래요 ==> "); 11 scanf("%d", &menu); 12 13 switch(menu) 14 { 15 case 1 : printf("#스테이크 알겠습니다.\n"); break; do 문이므로 한번은 꼭 수행 do 메뉴 출력 메뉴 선택 선택한 메뉴에 따라 주문을 접수

[응용예제 7-6] do~while 문의 사용 예 ② 16 case 2 : printf("#스파게티 알겠습니다.\n"); break; 17 case 3 : printf("#물 알겠습니다.\n"); break; 18 case 4 : printf("#빵 알겠습니다.\n"); break; 19 case 5 : printf("안녕히 가세요.\n"); break; 20 default : printf("잘못 주문하셨습니다.\n"); 21 } 22 } [ ② ](menu != 5); 23 } while 선택한 메뉴가 5가 아닌 동안 계속 수행

02_do~while 문

03_기타 제어문 break 문 for, while, do~while과 같은 반복문을 탈출할 때 사용 if 문과 결합하여 무한루프 안에 사용 무한루프를 돌다 특정 조건을 만족하면 프로그램을 종료하는 역할

[기본예제 7-7] break 문의 사용 예 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 07 for( i=1 ; i<=100 ; i++) 08 { 09 printf("for 문을 %d 회 실행했습니다.\n", i); 10 break; 11 } 12 13 printf("for 문을 종료했습니다.\n"); 14 } 100번 반복 출력 무조건 for 문을 빠져나감

[기본예제 7-8] break 문의 사용 예 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int a, b; 06 07 while ( 1 ) 08 { 09 printf ("더할 두 수 입력(멈추려면 0을 입력) : ") ; 10 scanf("%d %d", &a, &b); 11 12 if (a == 0) 13 break; 14 15 printf("%d + %d = %d \n", a, b, a+b); 16 } 무한 루프 키보드로 숫자 두 개를 입력받음 입력값이 0이면 무조건 for 문을 빠져나감

[기본예제 7-8] break 문의 사용 예 ② 17 18 printf("0을 입력해서 for 문을 탈출했습니다.\n"); 19 }

[기본예제 7-9] break 문의 사용 예 ③ 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 i = 0; 07 for ( ; ; ) 08 { 09 printf (" %d \n", i) ; 10 i ++ ; 11 if (i < 10) 12 { break; } 13 } 14 15 } 무한루프 i 값 출력 후 1을 더해줌 i 가 10보다 작으면 반복문의 블록을 무조건 빠져나감

03_기타 제어문 break 문의 탈출 범위 현재 실행중인 반복문 블록을 무조건 빠져나오는 명령문 [기본예제 7-9]의 수정 i 값이 0부터 시작하므로 첫번째 루프를 돌 때 프로그램 종료 1~9까지 출력하려면 부등호를 수정해야 함 if (i >= 10) for( ; ; ) { ... if(i < 10) { break; } }

[응용예제 7-10] break 문의 사용 예 ④ 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap = 0; 06 int i; 07 08 for ( i=1 ; i<=100 ; i++) 09 { 10 hap = hap + i; 11 12 if (hap>=1000) 13 break; 14 } 15 16 printf(" 1~100의 합에서 최초로 1000이 넘는 위치는? : %d\n", i); 17 } 100번 반복 실행 i 값을 hap에 누적 hap이 1000보다 크거나 같으면 블록을 빠져나감 블록을 빠져나간 순간의 i 값

03_기타 제어문 블록의 끝으로 가는 continue 문 블록의 끝으로 이동한 후 반복문을 처음부터 다시 수행

[기본예제 7-11] continue 문의 사용 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap = 0; 06 int i; 07 08 for ( i=1 ; i<=100 ; i++ ) 09 { 10 if ( i % 3 == 0 ) 11 continue; 12 13 hap += i; 14 } 15 16 printf(" 1~100까지의 합(3의 배수 제외): %d\n", hap); 17 } 1부터 100까지 반복 나머지 값이 0일 때(3의 배수) 블록의 끝으로 이동 3의 배수가 아닌 i 값 누적 누적된 값 출력

03_기타 제어문 지정한 위치로 이동하는 goto 문 지정된 레이블(label)로 건너뛰게 하는 명령문 프로그램의 흐름을 복잡하게 만드는 단점이 있음

[기본예제 7-12] goto 문의 사용 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap = 0; 06 int i; 07 08 for( i=1 ; i<=100 ; i++) 09 { 10 hap += i; 11 12 if (hap > 2000) 13 goto mygoto; 14 } 15 16 mygoto : 17 printf ("1부터 %d까지 합하면 2000이 넘어요.\n", i); 18 } 1부터 100까지 반복 합계 누적 누적된 값이 2000이 넘으면 mygoto로 무조건 이동 mygoto 레이블

03_기타 제어문 호출한 곳으로 돌아가는 return 문 현재 실행중인 함수를 끝내고, 해당 함수를 호출한 곳으로 돌아가게 함

[기본예제 7-13] return 문의 사용 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap = 0; 06 int i; 07 08 for( i=1 ; i<=100 ; i++) 09 hap += i; 10 11 printf("1부터 100까지의 합은 %d 입니다.\n", hap); 12 return 0; 13 14 printf("프로그램의 끝입니다."); 15 } 1부터 100까지 반복 합계 누적 출력 현재 함수를 호출한 곳으로 복귀 한 번도 출력되지 않음

[예제모음_16] 원하는 배수의 합계를 구하는 계산기 예제설명 입력한 두 수 사이의 합계를 구하되, 원하는 배수를 선택하여 합계를 구하는 프로그램이다. 100~200 사이의 수 중에서 4의 배수들의 합계를 구함 실행결과

예제모음_16 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 int start, end; 06 int basu, i; 07 int hap = 0; 08 09 printf("합계의 시작값 ==> "); 10 scanf("%d", &start); 11 printf("합계의 끝값 ==> "); 12 scanf("%d", &end); 13 printf("배수 ==> "); 14 scanf("%d", &basu); 15 변수 선언과 초기화 시작값, 끝값, 배수값 입력

예제모음_16 소스 16 i = start; 17 while (i <= end) 18 { 18 { 19 if (i % basu == 0) 20 hap = hap + i; 21 22 i++; 23 } 24 printf("%d부터 %d까지의 %d배수의 합계 ==> %d\n", start, end, basu, hap); 25 } i 값이 끝값보다 작은 동안 반복 입력한 값이 배수라면 합계에 누적 출력

[예제모음_17] 입력한 문자열의 종류 구분하기 예제설명 입력한 문자열에 대문자와 소문자 그리고 숫자가 각각 몇 개 입력되었는 지 세는 프로그램이다. 실행결과

예제모음_17 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 char str[100]; 06 char ch; 07 08 int da_cnt = 0, so_cnt=0, digit_cnt=0; 09 int i; 10 11 printf("문자열을 입력(100자 이내) : "); 12 scanf("%s", str); 13 14 i = 0; 15 do { 16 ch = str[i]; 문자열 배열과 문자형 변수 선언 대소문자, 숫자 개수 초기화 문자열 입력받기 입력받은 문자열에서 공백이 나오기 전까지 각 문자의 종류를 구분 문자열에서 한 글자 추출

예제모음_17 소스 17 18 if(ch >= 'A' && ch <= 'Z') 19 da_cnt++; 21 so_cnt++; 22 if(ch >= '0' && ch <= '9') 23 digit_cnt++; 24 25 i++; 26 } while (ch != '\0'); 27 28 printf("대문자 %d개, 소문자 %d개, 숫자 %d개\n", da_cnt, so_cnt, digit_cnt); 29 } A~Z면 대문자 개수 1개 증가 a~z면 소문자 개수 1개 증가 0~9면 숫자 1개 증가 다음 문자를 위해 i 값 증가(+1) 출력

[예제모음_18] 입력한 숫자만큼 별표 출력 실행결과 예제설명 0~9까지 입력한 숫자만큼의 별 모양을 출력하는 프로그램이다. 5914를 입력하면 각 줄에 별을 5개, 9개, 1개, 4개를 출력한다. 실행결과

예제모음_18 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 char str[100]; 06 char ch; 07 08 int i, k; 09 int star; 10 11 printf("숫자를 여러 개 입력 : "); 12 scanf("%s", str); 13 14 i = 0; 15 ch = str[i]; 문자열 배열과 문자형 변수 선언 정수형 변수 선언 문자열 입력 첫 문자 추출

예제모음_18 소스 16 while (ch != '\0') { 17 star = (int)ch - 48; 18 19 for(k=0 ; k<star ; k++) 20 printf("*"); 21 22 printf("\n"); 23 i = i + 1; 24 ch = str[i]; 25 } 26 } 문자가 있는 동안 실행 반복 문자를 숫자로 변환(문자 5는 아스키값 53이므로 숫자 4로 만들려면 48을 빼야한다) 별의 개수만큼 * 기호 출력 다음 줄로 넘어감 다음 문자를 알아내기 위해 i 값을 증가시킴

요약 while 문 do ~ while 문 기타 제어문 for 문과 같이 특정 동작의 반복을 위해 사용 while 문의 형식 { 반복할 문장들; } while 문과 거의 동일하지만, 조건과 상관없이 무조건 반복할 문장을 한 번은 수행 do~while 문의 형식 do ~ while 문 do { 반복할 문장들; } while (조건식); break 문 : 현재의 반복문을 무조건 탈출 continue 문 : 무조건 블록의 끝으로 이동한 후 다시 반복문의 처음으로 돌아감 return 문 : 현재 함수를 호출한 곳으로 돌아감. main() 함수에서 return을 만나면 프로그램을 종료 기타 제어문

응용과 주석으로 프로그램을 설명하면 가산 점수 인정 시험 범위 시험일자 : 10월 11일(월) 오후 2시 시험범위 : 2장 ~ 7장 실습문제 (6문제) 5장 ~ 7장 연습문제 (4문제) 문항 : 총 10문제 중 5문제 선택 배점 : 각 문항당 20점 응용과 주석으로 프로그램을 설명하면 가산 점수 인정 부정행위 적발 시 0점 처리

IT CookBook for Beginner, C 언어 기초 7장 끝 www.themegallery.com Thank You ! IT CookBook for Beginner, C 언어 기초 7장 끝