3. 조건문, 반복문, 네임스페이스
차 례
• 조건문 if
• 상수 조건문 switch~case
• 반복문
• 반복문의 중복
• 코드 범위와 네임 스페이스
2/25
조건문 IF
• 조건이 참일 때 주어진 내용 실행
• 문제 : 정수형 변수의 값이 100보다 크면 "100보다 크다."
라고 화면에 출력한다.
3/25
if (조건)
{
조건이 참일 때 수행할 문장;
}
①정수형 변수 ...
int a;
cout << "정수 입력 : " ;
cin >> a;
if (a>100)
cout << a << "는 100보다 크다" << endl;
cout << "즐거운 C++ 프로그램을 종료합니다.!!!" << e...
IF~ELSE
• 조건이 참일 때, 거짓일 때 각 내용 실행
5/25
if (조건)
{
조건이 참일 때 수행할 문장;
}
else
{
조건이 거짓일 때 수행할 문장;
}
문제) 정수를 입력해서 입력한 정수가 100보다 ...
IF~ELSE 실습
• 소스 3-4
6/25
int a;
cout << "정수 입력 : " ;
cin >> a;
if (a>100)
cout <<"100보다 크다" << endl;
else
cout << "100보다 작...
IF ~ELSE IF ~ … ELSE
• 주어진 조건이 여러 단계로 이어질 때
7/25
if (조건1)
조건1이 참일 때 실행;
else if (조건2)
조건2가 참일 때 실행;
else if (조건3)
조건3이 참일 ...
문제) 점수를 입력해서 점수가 100점과 90점 사이이면 “당신의 성적은 A입니다.”를 출
력하고, 89점과 80점 사이이면 “당신의 성적은 B입니다.”를 출력하고, 점수가 79점에서
70점 사이이면 “당신의 성적은 C...
상수 조건문 SWITCH~CASE
• 조건 결과가 여러 상수로 판단될 때 각 상수 사례에 대한 내용
실행
• ‘A’
• ‘ ‘ 는 캐릭터화
• 아스키 문자 값 65
9/25
switch (조건문) {
case 조건결과1...
int num;
cout << "숫자입력: ";
cin >> num;
switch(num)
{
case 1:
cout <<"1의값이입력되었습니다." << endl;
cout <<"**********************...
- 수행할 문장이 한 줄이든 그 이상이든 범위를 지정하지 않아도 사용할 수 있다.
case 문이 조건별로 구분되어 있기 때문.
- 실행속도도 if 문보다 빠르다!
- a long sequence of if-else st...
12/25
13/25
Tool Interface Standard (TIS) Executable and Linking Format (ELF)
Specification
BREAK
• 중괄호로 표시한 명령의 범위로부터 벗어나게 함
14/25
switch(num)
{
case 1:
cout <<"1의값이입력되었습니다." << endl;
cout <<"*********************...
cout << "점수입력: ";
cin >> score;
switch(score/10)
{
case 10:
case 9 :
cout << "당신의성적은A입니다." << endl;
break;
case 8 :
cout <...
반복문 - FOR
• for 문
• 반복문 for 실행 순서
① 초기화를 실행한다.
② 조건문을 실행한다. 조건이 참이면 ③을 실행하고,
거짓이면 반복문을 종료한다. (반복문 밖으로 제
어가 이동됨)
③ 반복할 내용을 ...
소스 3-12
17/25
#include <iostream>
using namespace std;
int main()
{
int i;
for (i=1; i<=5; i++)
cout << "i=" << i << endl;...
반복문 - WHILE
• while 문 – 조건문이 참이면 수행
18/25
while (조건문)
반복할 내용;
int i;
i=1;
while (i<=5)
{
cout << "i=" << i << endl;
i++;
}...
반복문 - DO~WHILE
• do~while : 적어도 한번은 실행하고 주어진 조건이 참이
면 다시 반복함
19/25
do {
반복할 내용;
} while (조건문) ;
int score;
do {
cout << "점...
CONTINUE
• 반복 범위 처음으로 실행 제어 이동
20/25
int i;
for (i=1; i<10; i++)
{
if (i%2 == 0)
continue;
cout << "i= " << i << endl;
}
반복문의 중복
• 반복문 내에 또 다른 반복문을 포함
21/25
int i, j;
for (i=1; i<=2; i++)
{
for (j=1; j<=3; j++)
{
cout << "i=" << i << " " ;
cou...
소스 3-19
• 문제 : 정수를 입력, 입력한 수의 팩토리알 계산하기
• 필요한 변수
• 정수, 팩토리알 계산을 위해 1부터 입력한 수까지 변환된 값을 나타낼
변수, 팩토리알 결과값을 저장한 변수
• 주의점 : 입력한...
프로그램 순서
1. 정수형 변수 a와 i를 선언한다.
2. 계승 결괏값을 저장할 정수형 변수 r을 선언하
고 1로 초기화한다.
3. 문자형 변수 flag를 선언하고 'y'로 초기화한다.
4. 화면에 '정수 입력: ' 메...
코드 범위와 네임스페이스
• 범위 표시
• 중괄호 {} 이용
• 함수 main() 블록
• 반복문 블록
• 범위 내에 선언한
변수는 범위 내에서
만 인식됨
(소스3-21)
• 범위에서 선언된 변수와
같은 변수를 선언하면...
main()
- 프로그램 실행에서 시작과 끝을 알리는 함수
- 작성한 프로그램을 실행 파일로 만들 때 반드시 하나의 main()이 필요
- 프로그램이 처음 시작 될 때 운영 체제에 의해 가장 먼저 호출 됨
- main(...
#include <iostream>
using namespace std;
int main()
{
int a=100;
cout << "main( ) 범위입니다. " << endl;
for (int i=1; i<3; i++...
네임스페이스 1
• 사용이유??
• 서로 다른 범위에 선언된 변수 그리고 같은 이름으로 선언된 변수를 함께 사용할 방
법
• 네임스페이스 : 범위의 이름 영역
• 다른 범위의 멤버를 참조할 경우 해당 범위의 이름을 이용...
소스 3-23
namespace NS_1 {
int a=200;
}
int main()
{
int a=100;
cout << "main( ) 범위입니다. " << endl;
for (int i=1; i<3; i++)
{...
네임스페이스 2
• 정의된 네임스페이스의 멤버 사용이 빈번한 경우 네임스
페이스 이름 생략하고 사용하려면 using 으로 표기하기
• 다른 네임스페이스에 같은 이름의 필드가 있을 때는 주의!
29/25
using nam...
Upcoming SlideShare
Loading in …5
×

03장 조건문반복문네임스페이스

598 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
598
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

03장 조건문반복문네임스페이스

  1. 1. 3. 조건문, 반복문, 네임스페이스
  2. 2. 차 례 • 조건문 if • 상수 조건문 switch~case • 반복문 • 반복문의 중복 • 코드 범위와 네임 스페이스 2/25
  3. 3. 조건문 IF • 조건이 참일 때 주어진 내용 실행 • 문제 : 정수형 변수의 값이 100보다 크면 "100보다 크다." 라고 화면에 출력한다. 3/25 if (조건) { 조건이 참일 때 수행할 문장; } ①정수형 변수 a를 선언하고 123으로 초기화한다. ②"변수 a의 값이 100보다 크면 "100보다 크다."라고 출력한다.
  4. 4. int a; cout << "정수 입력 : " ; cin >> a; if (a>100) cout << a << "는 100보다 크다" << endl; cout << "즐거운 C++ 프로그램을 종료합니다.!!!" << endl; int a; cout << "정수 입력 : " ; cin >> a; if (a>100) { cout << "a의 값 : " << a << endl; cout << a << "는 100보다 크다" << endl; } cout << "즐거운 C++ 프로그램을 종료합니다.!!!" << endl; 4/25
  5. 5. IF~ELSE • 조건이 참일 때, 거짓일 때 각 내용 실행 5/25 if (조건) { 조건이 참일 때 수행할 문장; } else { 조건이 거짓일 때 수행할 문장; } 문제) 정수를 입력해서 입력한 정수가 100보다 크면 “100 보다 크다”를 출력하고 그렇지 않으면 “100보다 작다”를 출력하자. 조건이 참일 때 실행할 내용 조건이 거짓일 때 실행할 내용
  6. 6. IF~ELSE 실습 • 소스 3-4 6/25 int a; cout << "정수 입력 : " ; cin >> a; if (a>100) cout <<"100보다 크다" << endl; else cout << "100보다 작다" << endl; 정수 입력 : 200 100보다 크다 정수 입력 : 90 100보다 작다 정수 입력 : 100 100보다 작다
  7. 7. IF ~ELSE IF ~ … ELSE • 주어진 조건이 여러 단계로 이어질 때 7/25 if (조건1) 조건1이 참일 때 실행; else if (조건2) 조건2가 참일 때 실행; else if (조건3) 조건3이 참일 때 실행; ………………………… else 위의 조건이 모두 거짓일 때 실행;
  8. 8. 문제) 점수를 입력해서 점수가 100점과 90점 사이이면 “당신의 성적은 A입니다.”를 출 력하고, 89점과 80점 사이이면 “당신의 성적은 B입니다.”를 출력하고, 점수가 79점에서 70점 사이이면 “당신의 성적은 C입니다.”를 , 점수가 69점에서 60점 사이이면 “당신의 성적은 D입니다.”를 출력하고, 59점 이하인 경우에는 “당신의 점수는 F입니다.”를 출력 하자. int jumsu; cout << "점수 입력 : " ; cin >> jumsu; if (jumsu<=100 && jumsu>=90) cout << "당신의 성적은 A입니다." << endl; else if (jumsu<=89 && jumsu>=80) cout << "당신의 성적은 B입니다." << endl; else if (jumsu<=79 && jumsu>=70) cout << "당신의 성적은 C입니다." << endl; else if (jumsu<=69 && jumsu>=60) cout << "당신의 성적은 D입니다." << endl; else cout << "당신의 성적은 F입니다." << endl; 8/25
  9. 9. 상수 조건문 SWITCH~CASE • 조건 결과가 여러 상수로 판단될 때 각 상수 사례에 대한 내용 실행 • ‘A’ • ‘ ‘ 는 캐릭터화 • 아스키 문자 값 65 9/25 switch (조건문) { case 조건결과1 : 조건결과가 1일 때 수행할 내용; case 조건결과2 : 조건결과가 2일 때 수행할 내용; …………………….. default : 모든 조건이 맞지 않을 경우 수행할 내용; }
  10. 10. int num; cout << "숫자입력: "; cin >> num; switch(num) { case 1: cout <<"1의값이입력되었습니다." << endl; cout <<"************************" << endl; case 2: cout <<"2의값이입력되었습니다." << endl; cout <<"************************" << endl; default: cout <<"1 또는2가아닌값이입력되었습니다." << endl; cout <<"************************" << endl; } 숫자 입력 : 1 1의 값이 입력되었습니다. ************************ 2의 값이 입력되었습니다. ************************ 1 또는 2가 아닌 값이 입력되었습니다. ************************ 숫자 입력 : 2 2의 값이 입력되었습니다. ************************ 1 또는 2가 아닌 값이 입력되었습니다. ************************ 10/25
  11. 11. - 수행할 문장이 한 줄이든 그 이상이든 범위를 지정하지 않아도 사용할 수 있다. case 문이 조건별로 구분되어 있기 때문. - 실행속도도 if 문보다 빠르다! - a long sequence of if-else statements is that the time taken to perform (jump table) - No branch prediction - Jump table - Jump tables are used when there are a number of cases (e.g., four or more) and they span a small range of values. 11/25
  12. 12. 12/25
  13. 13. 13/25 Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification
  14. 14. BREAK • 중괄호로 표시한 명령의 범위로부터 벗어나게 함 14/25 switch(num) { case 1: cout <<"1의값이입력되었습니다." << endl; cout <<"************************" << endl; break; case 2: cout <<"2의값이입력되었습니다." << endl; cout <<"************************" << endl; break; default: cout <<"1 또는2가아닌값이입력되었습니다." << endl; cout <<"************************" << endl; } 숫자 입력 : 1 1의 값이 입력되었습니다. ************************ 숫자 입력 : 2 2의 값이 입력되었습니다. ************************
  15. 15. cout << "점수입력: "; cin >> score; switch(score/10) { case 10: case 9 : cout << "당신의성적은A입니다." << endl; break; case 8 : cout << "당신의성적은B입니다." << endl; break; case 7: cout << "당신의성적은C입니다." << endl; break; case 6 : cout << "당신의성적은D입니다." << endl; break; case 5 : case 4 : case 3 : case 2 : case 1 : case 0 : cout << "당신의성적은F입니다." << endl; break; default : cout <<"점수를잘못입력했습니다." << endl; } 15/25
  16. 16. 반복문 - FOR • for 문 • 반복문 for 실행 순서 ① 초기화를 실행한다. ② 조건문을 실행한다. 조건이 참이면 ③을 실행하고, 거짓이면 반복문을 종료한다. (반복문 밖으로 제 어가 이동됨) ③ 반복할 내용을 실행한다. ④ 증감문을 실행한 후 ②를 실행한다. 16/25 for (초기화 ; 조건문 ; 증감문 ) 반복할 내용;
  17. 17. 소스 3-12 17/25 #include <iostream> using namespace std; int main() { int i; for (i=1; i<=5; i++) cout << "i=" << i << endl; cout << “반복문 for 이후 i의 값 : “ << i << endl; return 0; } 조건문 부분이 생략된 경우 무조건 참으로 간주! i=1 for ( ; i<=5; i++) cout …………… i=1 for ( ; i<=5; ) { cout ………… i++; }
  18. 18. 반복문 - WHILE • while 문 – 조건문이 참이면 수행 18/25 while (조건문) 반복할 내용; int i; i=1; while (i<=5) { cout << "i=" << i << endl; i++; } cout << "반복문while 이후i의값: " << i << endl;
  19. 19. 반복문 - DO~WHILE • do~while : 적어도 한번은 실행하고 주어진 조건이 참이 면 다시 반복함 19/25 do { 반복할 내용; } while (조건문) ; int score; do { cout << "점수입력: " ; cin >> score; } while (score>100 || score<0); cout << "당신이 입력한 점수는" << score << "입니다. " << endl;
  20. 20. CONTINUE • 반복 범위 처음으로 실행 제어 이동 20/25 int i; for (i=1; i<10; i++) { if (i%2 == 0) continue; cout << "i= " << i << endl; }
  21. 21. 반복문의 중복 • 반복문 내에 또 다른 반복문을 포함 21/25 int i, j; for (i=1; i<=2; i++) { for (j=1; j<=3; j++) { cout << "i=" << i << " " ; cout << "j=" << j << endl; } cout << "*******************" << endl; }
  22. 22. 소스 3-19 • 문제 : 정수를 입력, 입력한 수의 팩토리알 계산하기 • 필요한 변수 • 정수, 팩토리알 계산을 위해 1부터 입력한 수까지 변환된 값을 나타낼 변수, 팩토리알 결과값을 저장한 변수 • 주의점 : 입력한 값이 양수이어야 함 (do~while 사용하면 편리 함!!!) • 입력한 값을 이용해서 반복문 실행하기!!! 22/25
  23. 23. 프로그램 순서 1. 정수형 변수 a와 i를 선언한다. 2. 계승 결괏값을 저장할 정수형 변수 r을 선언하 고 1로 초기화한다. 3. 문자형 변수 flag를 선언하고 'y'로 초기화한다. 4. 화면에 '정수 입력: ' 메시지를 표시하고, 변수 a 에 정수를 입력한다. 이때 입력한 정수가 양수 가 아니면 "양수를 입력하세요."라는 메시지를 출력하고 다시 입력 내용을 반복한다. 5. 1부터 입력한 수까지 차례로 값을 곱하여 r에 저장한다. 6. 결괏값 r을 출력한다. 23/25 직접 코딩해 보세요!!!
  24. 24. 코드 범위와 네임스페이스 • 범위 표시 • 중괄호 {} 이용 • 함수 main() 블록 • 반복문 블록 • 범위 내에 선언한 변수는 범위 내에서 만 인식됨 (소스3-21) • 범위에서 선언된 변수와 같은 변수를 선언하면 안쪽 변수가 우선 - 변수이름은 의미있게! 24/25
  25. 25. main() - 프로그램 실행에서 시작과 끝을 알리는 함수 - 작성한 프로그램을 실행 파일로 만들 때 반드시 하나의 main()이 필요 - 프로그램이 처음 시작 될 때 운영 체제에 의해 가장 먼저 호출 됨 - main()도 역시 일반 함수와 같은 사용자 정의 함수 25/25
  26. 26. #include <iostream> using namespace std; int main() { int a=100; cout << "main( ) 범위입니다. " << endl; for (int i=1; i<3; i++) { cout << "반복문 for의 범위입니다. " << endl; cout << "i= " << i << endl; cout << “a=“ << a << endl; //에러없음!!! } cout << “반복문 for를 마친 후 i의 값은 : " << i << endl; //에러!!! cout << "프로그램을 종료합니다." << endl; return 0; } 26/25
  27. 27. 네임스페이스 1 • 사용이유?? • 서로 다른 범위에 선언된 변수 그리고 같은 이름으로 선언된 변수를 함께 사용할 방 법 • 네임스페이스 : 범위의 이름 영역 • 다른 범위의 멤버를 참조할 경우 해당 범위의 이름을 이용한 소속을 알려 야 함!!! • 네임스페이스 정의 • 다른 네임스페이스 멤버 참조 : 이름::멤버(:: 범위연산자; scoping operator) • 네임스페이스 멤버에는 변수뿐만 아니라 함수도 있기 때문에 네임스페 이스 사용 위치는 함수 내에서가 아니라 파일의 선언부에서 사용한다. 27/25 namespace 이름 { 프로그램 내용~~~(변수나 함수) }
  28. 28. 소스 3-23 namespace NS_1 { int a=200; } int main() { int a=100; cout << "main( ) 범위입니다. " << endl; for (int i=1; i<3; i++) { cout << "반복문 for의 범위입니다. " << endl; cout << "i= " << i << endl; cout << "namespace NS_1의 a=" << NS_1::a << endl; cout << "a=" << a << endl; } cout << "namespace NS_1의a=" << NS_1::a << endl; cout << "a=" << a << endl; ………………………………………. 28/25
  29. 29. 네임스페이스 2 • 정의된 네임스페이스의 멤버 사용이 빈번한 경우 네임스 페이스 이름 생략하고 사용하려면 using 으로 표기하기 • 다른 네임스페이스에 같은 이름의 필드가 있을 때는 주의! 29/25 using namespace [네임스페이스이름]; #include <iostream> using namespace std; int main() { cout << “즐거운 수업!!! << endl; return 0; } #include <iostream> //using namespace std; int main() { std::cout << “즐거운 수업!!! << std::endl; return 0; }

×