이번에는 조건문을 응용하여 여러 문제를 해결하는 과정들을 알아보자
먼저 배열의 홀짝 판별이다.
예제를 살펴보자.

% 연산자를 사용하여 배열을 검사하고, 2로 나누었을 때 나머지가 0이면 짝수, 나머지가 1이면 홀수이다.
이때 변수를 1씩 증가하게 만들면 개수를 구할 수 있다.

배열의 수가 홀수인지 짝수인지와 각각의 개수가 몇개인지 출력된 것을 확인할 수 있다.
다음은 배열에서 가장 작은 수 구하기 이다.

배열의 수들 중 가장 작은 수를 구하기 위해 가장 작은 정수값이 담길 min 변수를 선언해주고 배열에서 첫번째를 기준을 잡은 후,
if문을 사용해 배열의 원소를 모두 검사해 이 원소보다 작으면 min 변수에 그 원소를 대입한다
(반복문이 계속 반복하면서 더 이상 min에 들어있는 원소보다 작은 수가 없도록 만든다 -> 결론적으로 min은 배열의 원소 중 가장 작은 수가 들어갈 것이다)
다음은 배열에서 소수 구하기 이다.

100 이하의 소수를 모두 구하는 코드로, 이중 for문을 사용하여 바깥 for문에는 i가 2부터 100 이하까지 반복할 수 있도록 한다(1은 소수가 아니기 때문에 2부터 반복한다)
isPrime은 소수인지의 여부를 저장하기 위한 변수이다. 1일 때 소수, 0이면 소수가 아님을 의미한다.
우선 1을 대입하여 i가 소수라고 가정하고 시작한다.
안쪽 for문에는 j가 2부터 i 미만까지 반복하여 현재 숫자 i를 j= 2,3,4,...,i-1로 나눈다.
if(i % j == 0) -> 만약 i가 j로 나누어 떨어지면 소수가 아니므로 isPrime에 0을 대입하고 break로 반복문을 즉시 빠져나온다.
왜냐하면 이미 소수가 아니라는 것을 알았기 때문이다.
안쪽 반복문이 끝나면 isPrime이 1일 때(참일때), printf("%d", i)를 실행한다.
소수는 1과 자기자신(i) 밖에 나눠지지 않기 때문에, 이중 for문을 거쳐 자기자신과 나누기 직전에(i-1) 다른 수로 나누어지면 그 수는 소수가 아니다. -> break처리

이러한 과정을 모두 거치면 최종적으로 1과 자기자신(i)로만 나누어진 소수들만 조건에 부합하여 출력된다
다음은 공약수 출력하기 이다.
반복문을 사용하여 두 수에 같은 수를 나누었을 때 나머지가 0 이되는 것들이 공약수.


반복문을 두 수중 작은 수까지만 반복하고, 만약 a와 b가 같은 수로 나누어지면 그 수를 출력한다.
다음은 최대공약수를 구해보자


min 변수에 삼항 연산자를 사용해서 num1이 num2보다 작으면 num1이 min에 대입, 클경우 num2가 min에 대입되도록 한다.
반복문을 num1과 num2중 작은 수부터 시작하여 1까지 줄게 반복하도록 만들고,
만약 num1과 num2를 나누었을 때 동시에 나머지가 0이되는 수가 나오면 그 즉시 반복문을 종료하고 최대공약수를 출력한다.
이 외에도 값을 사용자에게 입력받아서 조건문을 응용할 수도 있다.
VR게임 개발을 위한 언리얼엔진/C++ 공부한 내용 끄적이기...
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!