[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언어] 제어문, 함수  (2) 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
  • 전체
    오늘
    어제
    • 분류 전체보기 (201) N
      • Apple (119) N
        • iOS (22)
        • visionOS (4)
        • Swift (65) N
        • UIKit (2)
        • SwiftUI (20)
        • RxSwift (2)
        • Xcode (4)
      • 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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바