C언어/참고서: C언어 콘서트

C언어 26차시 break, continue, 연습문제

Olivia-BlackCherry 2023. 3. 26. 19:00

목차

    1. break 문

    반복 루프를 벗어나기 위해 쓰인다. 

    문장을 실행하다가 break 문을 만나면, 반복 루프는 즉시 중단된다. 

    반복 루프를 빠져나와 다음에 있는 문장이 실행된다.

    >> 숫자 9를 입력하지 않으면 break 문이 실행된다.

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h> 
    
    int main(void)
    {
    	int x, y, i, j;
    	x = 9;
    	printf("구구단을 출력해봅시다:\n");
    
    	for (i = 1; i <= x; i++) {
    		printf("숫자 9를 입력하세요");
    		scanf("%d", &y);
    
    		//사용자가 9를 입력하지 않으면 반복 루프가 중단된다.
    		if (y != 9)
    			break;
    
    		for (j = 1; j <= y; j++) {
    			printf("%d*%d=%d\n", i, j, i*j);
    		}
    		printf("\n");
    	}
    	return 0;
    
    }

     

     

     

    2. continue 

    현재 반복 과정 중에 중간에 continue문을 만나면 나머지 과정은 건너뛰고

    그 다음 반복 과정을 시작하게 만든다.

    >> 중간에 3을 곱하는 과정을 건너 뛴다.

     

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h> 
    
    int main(void)
    {
    	int x, y, i, j;
    	x = y = 9;
    	printf("구구단을 출력해봅시다:\n");
    
    	for (i = 1; i <= x; i++) {
    		for (j = 1; j <= y; j++) {
    			// j가 3인 경우에는 continue 뒤에 있는 반복문을 실행하지 않고, j가 4인 경우로 건너뛴다.
    			if (j == 3)
    				continue;
    			printf("%d*%d=%d\n", i, j, i*j);
    			
    		}
    		printf("\n");
    	}
    	return 0;
    
    }

     

     

    3-1. 연습문제: 산수 문제 자동 출제

    ♣결과

    ♧코드

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main(void)
    {
    	int x, y, result, answer;
    	srand(time(NULL));
    	printf("정확한 덧셈을 계산해봅시다:\n");
    
    	while(1){
    		x = rand() % 99 + 1;
    		y = rand() % 99 + 1;
    		result = x + y;
    
    		printf("%d+%d의 값을 입력하세요:\n", x, y);
    		scanf("%d", &answer);
    
    		if (answer == result) {
    			printf("정답입니다.\n");
    			break;
    		}
    		else {
    			printf("다른 문제로 넘어갑니다");
    		}
    
    	printf("\n");
    	}
    	return 0;
    
    }

     

     

    3-2. 연습문제: n이 소수(prime number)인지 아닌지 판별하기

    소수 prime number란?

    ------>>클릭

     

    ♣결과

    ♧코드

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main(void)
    {
    	int i, n, is_prime;
    	is_prime = 1;
    
    	printf("소수를 찾아봅시다.:\n");
    	
    	//사용자 입력 숫자
    	printf("숫자를 입력하세요\n");
    	scanf("%d", &n);
    
    	// 1과 자기 자신의 숫자가 아닌 경우, i로 나누어 떨어지면 소수가 아니다.
    	for (i = 1; i <= n; i++) {
    		if ((i == 1) || (i == n)) {
    			continue;
    		}
    		else if (n % i == 0) {
    			is_prime = 0;
    			break;
    		}
    	}
    	
    	//소수인지 아닌지를 출력한다.
    	if (is_prime == 0) {
    		printf("%d는 소수가 아닙니다\n", n);
    	}
    	else {
    		printf("%d는 소수입니다.\n", n);
    	}
    	
    	return 0;
    }

     

     

    3-3. 연습문제 1부터 n까지 수 중에, 모든 소수(prime number)를 찾기

    ♣결과

    ♧코드

    //olivia_codingschool
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main(void)
    {
    	int i, j, n, k, is_prime;
    
    	printf("소수를 찾아봅시다.:\n");
    	
    	//사용자 입력 숫자
    	printf("숫자를 입력하세요\n");
    	scanf("%d", &k);
    
    	for (n = 2; n <= k; n++) {
    		is_prime = 1;
    
    		// 1과 자기 자신의 숫자가 아닌 경우, i로 나누어 떨어지면 소수가 아니다.
    		for (i = 1; i <= n; i++) {
    			if ((i == 1) || (i == n)) {
    				continue;
    			}
    			else if (n % i == 0) {
    				is_prime = 0;
    				break;
    			}
    		}
    
    		//소수인지 아닌지를 출력한다.
    		if (is_prime == 0) {
    			printf("%d는 소수가 아닙니다\n", n);
    		}
    		else {
    			printf("%d는 소수입니다.\n", n);
    		}
    	}	
    	return 0;
    }