예습

[예습] 8월 26일 예습

k-codestudy 2024. 8. 26. 18:53

- 매주 월요일은 학교를 가야 하기에 12월까지는 월요일마다 따로 예습을 진행할 예정 -

 

Switch Case 문

정의: switch 문은 입력받은 값을 조건식이 아닌 특정 패턴으로 비교하고, 그 결과에 따라 실행할 블록을 결정하는 조건문입니다.

 

예시) 

#include <iostream>

int main() 
{

	int nData{};
    
    scanf_s("%d", &nData);
    
    switch(nData)
    {
    
    case 1 :
    	printf("1\n");
        break;
        
    case 2 : 
    	printf("2\n");
        break;
       
    case 3 : 
    	printf("3\n");
        break;
        
    default:
        printf("없는 값\n");
        break;        
    }      
}
  • 정수형 nData변수 생성 -> scanf_s로 nData에 정수형 값을 입력받아 저장
  • switch문의 괄호 안에 nData을 넣어 nData에 어떤 값이 들어오는지 판단
  • 이후 case 1, 2, 3, default를 사용하여 nData 들어있는 값을 기준으로 판단하여 알맞은 구문을 출력
  • case 1, case 2, case 3에 해당하는 값이 없으면, default 구문이 실행

if else문 대신에서 사용할 수 있는 switch case문은 위의 예시처럼 분류체계가 명확한 경우 if else 문보다 코드를 읽기 쉬워지지만 반대로 분류체계가 확실하지 않다면 if else문을 사용하는 게 더 좋을 수도 있으니 잘 판단하고 사용하면 될꺼같다.

 

While 문

정의: while 문은 조건이 참(True)인 동안 반복하여 실행되는 반복문입니다. 조건이 거짓(False)이 되면 반복이 종료됩니다. 따라서, 무한 반복을 방지하려면 조건이 거짓이 되도록 코드 내에서 적절히 제어해야 합니다.

 

예)

#include <iostream>

int main() 
{

	int nData{};
    
    nData = 0;
    
    while(nData < 5)
    {
    	printf("%d", nData);
        nData++;
    }
}


// while (조건문)
//{
// ... ( 반복될 로직 )
//}
  • int형 변수 nData 선언, nData에 0이라는 값을 저장
  • while문을 사용하여 nData의 값이 5가 미만일 때 동안 반복 실행
  • nData의 현재 값을 처음 출력을 하고 nData의 값에 1씩 증가시켜 반복한다 
  • 출력 값 : 0, 1, 2, 3, 4

while 문은 반복 횟수가 불확실하거나 조건에 따라 반복을 제어해야 할 때 유용하며, for 문과 달리, 반복 횟수가 커지거나 조건에 따라 반복이 제어되는 상황에서는 while 문이 더 효율적일 수도 있다.

 

while - continue

continue는 반복문 내에서 특정 조건이 만족될 때, 반복문의 나머지 부분을 건너뛰고, 다시 반복문의 처음으로 돌아가게 만든다. 이를 통해 반복문이 끝까지 실행되지 않도록 조절할 수 있다.

 

while(조건문)
{
	[수행1]
	[수행2]
	if(특정조건) continue;
	[수행3]
	[수행4]
}

 

  • [수행 1] -> [수행 2]
  • if(특정조건)에서 조건이 만족되면 continue 실행
  • 반복문의 처음으로 돌아가 [수행 1]부터 다시 실행
  • 특정 조건이 만족되지 않으면 [수행 3], [수행 4]를 실행하고 반복문이 계속 진행됨

예시)

#include <iostream>

int main() 
{
	int nData{};

	nData = 1;

	while (nData < 11) 
	{
		if (nData % 2 != 1) 
		{
			nData++;
			continue;
		}

		printf("%d\n", nData);
		nData++;
	}
}
  • 정수형 nData를 선언 후 초기값으로 1을 저장
  • while문을 사용하여 nData가 11 미만일 때까지 반복
  • if문을 사용해 nData가 홀수가 아닌 경우, 즉 짝수인 경우에 nData의 값을 1 증가시키고, continue를 통해 반복문의 처음으로 돌아가게 한다. 이때 printf문은 건너뛰게 되고 다시 while문이 실행된다. 
  • 만약 홀수인 경우 if문이 실행되지 않으므로, 아래의 printf문에서 nData값을 출력시키고  nData의 값을 1 증가시킨다.
  • nData가 1 ~ 10까지 증가하면서 홀수일 때만 출력되고 짝수일 때는 건너뛰어 반복문을 실행하게 되고 결괏값으로 출력되는 숫자는 1, 3, ,5 ,7, 9이다.

 

즉, continue의 아래 부분은 싹 무시를 하고 다시 위로 올라와서 다시 while(조건문)을 확인하여 다시 반복을 하게 되는 것이다.

while - break 

break는 반복문을 즉시 종료시킨다.

특정 조건이 만족되면 반복문을 빠져나와, 반복문 이후의 코드를 실행하게 된다.

while(조건문)
{
    [수행1]
    [수행2]
    if(특정조건) break;
    [수행3]
    [수행4]
}

 

 

  • [수행 1] -> [수행 2]
  • if(특정조건)에서 조건이 만족되면 break 실행
  • 반복문 종료, 반복문 이후의 코드 실행
  • 특정 조건이 만족되지 않으면 [수행 3], [수행 4]를 실행하고 반복문이 계속 진행됨

예시)

#include <iostream>

int main() 
{
	int nData{};

	nData = 1;

	while (nData < 10) 
	{
		if (nData > 5) 
		{
			break;
		}

		printf("%d\n", nData);
		nData++;
	}
}
  • 정수형 nData를 선언 후 초기값으로 1을 저장
  • while문을 사용하여 nData가 11 미만일 때까지 반복
  • if문을 사용하여 nData가 5초 과일경우 break를 실행하여 while문을 즉시 종료시킴
  • nData가 5를 초과하지 않으면 if문은 실행되지 않고 printf문이 실행되어 nData에 저장된 값이 출력되고 nData의 값을 1 증가시킨 후 다시 while문이 실행된다.
  • nData가 1부터 10까지 증가하며, nData가 5를 초과하기 전까지 1, 2, 3, 4, 5가 출력되고, nData가 6이 되는 순간 break가 실행되어 while문을 종료한다.

 

즉, 중간에 다시 처음으로 되돌아가는 continue와 달리 break 키워드는 아예 while을 탈출하게 된다.

요약

  • continue: 특정 조건을 만족하면 현재 반복을 건너뛰고, 반복문의 처음으로 돌아감.
  • break: 특정 조건을 만족하면 반복문을 즉시 종료하고, 반복문 이후의 코드로 이동.

 

 

'예습' 카테고리의 다른 글

[예습] 10월 7일 예습  (1) 2024.10.08
[예습] 9월 30일 예습 정리  (0) 2024.10.01
[예습] 9월 23일 예습  (0) 2024.09.23
[예습] 9월 9일 예습  (0) 2024.09.10
[예습] 9월 2일 예습  (0) 2024.09.02