[C언어] 제어문 (2)

2022. 5. 19. 23:11·C언어
728x90
반응형

1. switch~case문 계산기

  • switch~case문은 다중 if~else문처럼 경우(case)의 수가 많을 경우 자주 사용하는 조건문이다.
  • 결과가 정수형(int, char, enum)인 경우만 선택할 수 있으므로 범위 검사 문제에는 적당하지 않다.
  • switch다음의 조건식은 결과가 정수형(int, char, enum)인 수식만 가능
  • case 다음에 쓰는 상수1, 상수2 등을 레이블(label)이라 함
  • case문의 레이블 다음에는 구두점 콜론(:)을 씀
  • break문은 자신을 포함하고 있는 블록(루프)을 벗어나는데 사
  • 조건식은 각 case문에서 차례대로 비교되고 조건식의 결과와 상수 레이블이 일치하면 그 아래 문장을 실행하고 break문을 만나면 switch~case문을 탈출
  • 보통은 각 case별로 실행할 내용이 다르므로 case문마다 마지막에 break문을 모두 사용하지만, break문을 반드시 써야 하는 것은 아님
  • 마지막 case에 해당하는 default문은 위의 case 레이블에 만족하는 경우가 없을 때 실행되는 부분으로 다중 if~else의 마지막 else에 해당함
switch(조건식){ //조건식은 결과가 정수형(int, char, enum)인 수식만 가능
case 상수1 :      //조건식의 결과가 상수1이면, if(조건식==상수1)
         문장1;
        break;      //switch~case문 루프를 벗어남
case 상수2 :    //조건식의 결과가 상수2이면, else if(조건식==상수2)
         문장2;
        break;  
          ⋮
case 상수n: 
         문장n; 
         break;
default :        //만족하는 경우가 없을 때, 다중 if~else의 마지막 else에 해당
         문장; 
         break;  //없어도 되지만 통일감을 위해 쓰는 것이 좋다.
}//switch~case문 루프 끝

2. 반복문 for

for문은 특정한 부분을 반복하는 제어문이다.
C 프로그래밍에서 가장 많이 등장하는 중요한 문법 중 하나로, 반복 횟수를 알고 있는 경우 많이 사용한다.
for문은 제어 변수 초기식, 조건식, 증감식(증가나 감소식을 줄여서)의 세 부분으로 구성되어 있고 각각은 구두점 세미콜론(;)으로 분리한다.
제어 변수는 반복문을 제어하는 변수로 제어 변수 초기식은 루프가 시작될 때 한 번만 수행한다.
(j=0과 같이 제어 변수에 초기값을 할당)
조건식은 반복문이 언제까지 실행될 것인지를 지정하며 조건식이 참이면 반복문의 루프는 돌고, 거짓이면 루프를 빠져나온다.
증감식은 반복 실행될 문장이 모두 실행된 후 실행되며 보통 제어 변수를 증가나 감소시킨다.

<실습1>
#include <stdio.h>
 
int main(void)
{
    int i;
    for (i=0; i<100; i++){
    printf("피피아노");
    }
    return 0;
}
 
<실습2>
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i< 10; ++i) {
   printf("피피아노");
 }
return 0;  
}
 
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i< 10; i=i+1) {
   printf("피피아노");
 }
return 0;
}
 
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i< 10; i+=1) {
   printf("피피아노");
 }
return 0;
}
 
<실습3>
#include <stdio.h>
int main(void)
{
 int i;
 for (i = 0; i< 10000; i++) {
printf("%03d\t ",i+1); }
return 0;
}
 
<실습4>
#include <stdio.h>
int main(void)
{
int i;
for (i = 3; i<= 100; i+=3) {
   printf("%*d\n",i,i);
 }
return 0;
}

<실습5>
#include <stdio.h>
int main()
{
 int n; for(n=1;n<=1000;n++){
printf("피피아노 ");
 }
return 0;
}
 
#include <stdio.h>
int main()
{
 int n; for(n=1001;n<=2001;n++){
printf("피피아노 ");
 }
return 0;
}
 
 
#include <stdio.h>
int main()
{
    int n; for(n=1000;n>=1;n--){
printf("피피아노 ");
 }
return 0;
}
<실습6>
#include <stdio.h>
 int main(void)
{
 int n, sum = 0; //초기화를 안하면?
     for (n = 1; n <= 100; n++){
     sum = sum + n;
 printf("%d+", n);
     }
     printf("\n%d\n", sum);
 return 0;
 }
 
<실습7>
#include <stdio.h>
int main(void)
{
    int i;
    for (i = 0; i < 128; i++)
printf("%d=%c\t", i, i);
    return 0;
}
 
<실습8>
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
 #include <stdio.h>
int main(void)
 {
 char op;
 int num1, num2;
 for (;;) //추가
 { //추가
 printf("\n덧셈과 뺄셈만 가능합니다\n");
 printf("끝내려면 end을 입력하세요\n"); //추가
 printf("계산하려는 수식(예:10+20)을 입력하세요:");
 scanf("%d%c%d", &num1, &op, &num2); //10+20
 if (num1 == 0 && num2 == 0) break;
     else//추가
 if ("%n end") break;
     else//추가
 switch (op) {
 case '+':
 printf("덧셈 결과는 %d입니다.\n", num1 + num2);
 break; case '-':
 printf("뺄셈 결과는 %d입니다.\n", num1 - num2);
 break;
 default:
 printf("다시 입력하세요\n");
 break;
 }// switch~case문 끝
 } //추가, for문 끝
 return 0;
 }
 
 
 
<실습9>
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
 #include <stdio.h>
int main(void)
 {
    int i, num, sum = 0, total;
    printf("임의의 수의 평균을 구하는 프로그램입니다.\n");
    printf("계산하려는 수는 몇 개입니까==");
    scanf("%d", &total);
   
    for (i = 1; i <= total; i++) {
        printf("%d번째 수를 입력하세요=", i);
        scanf("%d", &num);
        sum += num;
    }
    printf("합은 %d,평균은 %lf 입니다.\n", sum, (double)sum / total);
    return 0;
}
 
<실습10>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <limits.h> //INT_MIN, INT_MAX가 정의되어 있음
int main(void)
{
int i, num, sum = 0, total, max = INT_MIN, min = INT_MAX; //누적하는 변수 sum은 반드시 초기화 // max는 int형으로 표현할 수 있는 가장 작은 값 INT_MIN으로 초기화
// min은 int형으로 표현할 수 있는 가장 큰 값 INT_MAX로 초기화
for (;;) {
sum = 0, max = INT_MIN, min = INT_MAX;
printf("\n임의의 수의 평균을 구하는 프로그램입니다.\n"); printf("계산하려는 수는 몇 개입니까(끝내려면 0)=="); scanf("%d", &total);
if (total == 0) break;
for (i = 1; i <= total; i++) { printf("%d번째 수를 입력하세요=", i); scanf("%d", &num);
sum += num;
  max = (num > max) ? num : max;
min = (num < min) ? num : min; }
printf("합=%d,평균=%.2f, 최댓값=%d, 최솟값=%d\n", sum, (double)sum / total,max,min);
}
return 0;
}
<실습11>
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <limits.h> //INT_MIN, INT_MAX가 정의되어 있음
int main(void)
{
int i, num, sum = 0, total, max = INT_MIN, min = INT_MAX;
//누적하는 변수 sum은 반드시 초기화
// max는 int형으로 표현할 수 있는 가장 작은 값 INT_MIN으로 초기화
// min은 int형으로 표현할 수 있는 가장 큰 값 INT_MAX로 초기화
for (;;) {
sum = 0, max = INT_MIN, min = INT_MAX;
printf("\n임의의 수의 평균을 구하는 프로그램입니다.\n"); printf("계산하려는 수는 몇 개입니까(끝내려면 0)=="); scanf("%d", &total);
if (total == 0) break;
for (i = 1; i <= total; i++) { printf("%d번째 수를 입력하세요=", i); scanf("%d", &num);
sum += num;
max = (num > max) ? num : max;
min = (num < min) ? num : min; }
printf("합=%d,평균=%.2f, 최댓값=%d, 최솟값=%d\n", sum, (double)sum / total,max,min);
    sum = 0;
}
return 0;
}
 
<실습12>
#include <stdio.h>
#include <limits.h> //INT_MIN, INT_MAX가 정의되어 있음
int main(void)
{
    int n, m;
   
    for (n = 1; n <=1000; n++)
    {
        printf("%d ", n);
        for (m = 1; m <= n * 10000; m++);
    }
    return 0;
}
 
<실습13>
#include <stdio.h>
int main(void)
{
int n, m;
puts("작업을 시작합니다."); for (n = 1; n <= 100; n++) {
        printf("%d%%\b\b\b\b", n);
        for (m = 1; m <= n * 1000000; m++);
    }
puts("작업이 완료되었습니다.");
return 0;
   
}
 
<실습14>
#include <stdio.h>
int main(void)
{
    int dan,gop;
for(dan=2;dan<=9;dan++){ //단
for(gop=1;gop<=9;gop++){ //곱
    printf("%dx%d=%2d ",dan,gop,dan*gop);
}
    printf("\n");
    }
return 0;
}
 
 
<실습15>
#include <stdio.h>
int main(void)
{
int dan, gop;
printf(" ◆ 구구단 표 ◆ \n"); //ᄆ한자키
for (dan = 2; dan <= 9; dan++) printf(" %d단 │ ", dan); printf("\n──────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼\n");//ᄇ한자키
    for (gop = 1; gop <= 9; gop++){
for (dan = 2; dan <= 9; dan++) { //곱
    printf("%dx%d=%2d│ ", dan,gop, dan * gop);
 }
printf("\n");
   
}
return 0;
}
 
<실습문제>
#include <stdio.h>
#include <limits.h> //INT_MIN, INT_MAX가 정의되어 있음
int main(void)
{
    int n, m;
   
    for (n = 1; n <=1000; n++)
    {
        printf("%d ", n);
        for (m = 1; m <= 10000000 / n; m++); //점점 빠르게
    }
    return 0;
}
 
<실습문제>
#include
int main(void)
{
    
    int i, j;
    for (i = 1; i <= 10; i++) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    for (i = 1; i <= 10; i++) {
        for (j = 9; j >= i; j--) {
            printf("*");
        }
        printf("\n");
    }
 
    return 0;
}

728x90
반응형

'C언어' 카테고리의 다른 글

[C언어] 배열, 구조체, 포인터  (1) 2022.06.09
[C언어] 함수, 기억클래스  (0) 2022.06.02
[C언어] 제어문, 함수  (5) 2022.05.27
[C언어] 제어문 (1)  (0) 2022.05.15
'C언어' 카테고리의 다른 글
  • [C언어] 배열, 구조체, 포인터
  • [C언어] 함수, 기억클래스
  • [C언어] 제어문, 함수
  • [C언어] 제어문 (1)
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (213)
      • Apple (131)
        • iOS (23)
        • visionOS (4)
        • Swift (70)
        • UIKit (2)
        • SwiftUI (24)
        • RxSwift (2)
        • Xcode (5)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    함수
    변수
    제어문
    Initializers
    visionOS
    옵셔널
    운영체제
    네트워크
    Apple
    SWIFT
    이니셜라이저
    Xcode
    연산자
    배열
    프로그래머스
    스위프트
    프로퍼티 래퍼
    combine
    Vision Pro
    UIKit
    티스토리챌린지
    디자인패턴
    오블완
    코딩테스트
    클래스
    비동기
    프로세스
    swiftUI
    자바스크립트
    ios
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[C언어] 제어문 (2)
상단으로

티스토리툴바