데일리 codeup/단순 반복문

continue 문, break 문_220704

hayo_su 2022. 7. 4. 11:59

continue

continuefor, while 안에서만 사용이 가능하다.

continueif 와 같이 쓰이며, if 조건이 만족하는 경우에는 아래 코드를 더 이상 실행하지 않고 다시 위로 올라가 그 다음 for loop을 실행하게 된다다. continue는 조건문과 같이 쓰여야 한다.

for (int i = a; i < b; i++) {

    코드1

    if (조건) {
        코드2 
        continue;
    }

    코드3
}

i가 조건에 해당하는 경우에는 코드1 -> 코드2만 수행, i가 조건에 해당하지 않는 경우에는 코드1 -> 코드3만 수행


친근하지 않은 수

1에서 n 사이의 정수 중 친근하지 않은 수의 개수를 출력하는 프로그램을 작성해보세요. 친근한 수란 2, 3 또는 5로 나누어 떨어지는 수를 의미합니다.

#include <iostream>
using namespace std;
int main(){
    int n,result = 0;
    cin >> n;
    for(int i=1;i<=n;i++){
        if(i%2==0 || i%3==0 || i%5==0)  continue;
        result ++;
    }
    cout << result;
    return 0;
}

특정 조건의 온전수 구하기

1부터 n사이의 수 중 온전수를 출력하는 프로그램을 작성해보세요.

온전수란 다음 조건을 모두 만족하지 않는 수를 뜻합니다.

  • 2로 나누어 떨어지는 경우
  • 일의 자리가 5인 경우
  • 3으로 나누어 떨어지면서 9로는 나누어 떨어지지 않는 수

#include <iostream>
using namespace std;
int main(){
    int n;
    cin >> n;
    for(int i=1;i<=n;i++){
        if(i%2==0 || i%10==5 || i%3==0 && i%9!=0)   continue;
        cout << i <<' ';
    }
    return 0;
}

조건에 부합하는 수

정수 a 를 입력받아 1부터 a까지의 수 중 다음 조건을 모두 만족하지 않는 수들을 모두 출력하는 프로그램을 작성해보세요.

  • 짝수이면서 4의 배수가 아닌 수
  • 8로 나눈 몫이 짝수인 수
  • 7로 나눈 나머지가 4보다 작은 수
    #include <iostream>
    using namespace std;
    int main(){
      int a;
      cin >> a;
      for(int i=1;i<=a;i++){
          if(i%2==0 && i%4!=0 || (i/8)%2==0 || (i%7)<4)   continue;
          cout << i <<' ';
      }
      return 0;
    }

break

breakfor, while 과 같이 loop 안에서 사용이 가능하다.
breakif 와 같이 쓰이며, 해당 조건이 만족하는 경우에는 가장 가까이에 있는 loop을 완전히 탈출하게 된다


1부터의 합

정수 n이 주어졌을 때, 1부터 차례대로 100까지 1씩 증가시키며 합을 구하다가 처음으로 그 합이 n 이상이 되는 순간에 더해진 숫자가 무엇인지를 출력하는 프로그램을 작성해보세요.

#include <iostream>
using namespace std;
int main(){
    int n,i,sum_val = 0;
    cin >> n;
    for(i=1;i<=100;i++){
        sum_val += i;
        if(sum_val>=n)  break;
    }
    cout << i;
    return 0;
}

1부터 곱셈하기

#include <iostream>
using namespace std;
int main(){
    int n,i,mul_val = 1;
    cin >> n;
    for(i=1;i<=10;i++){
        mul_val *= i;
        if(mul_val>=n)   break;
    }
    cout<<i;
    return 0;
}

1까지 나누기

정수 n이 주어졌을 때, n을 차례대로 1, 2, 3, ... 으로 나누었을 때 1 이하가 되는 순간까지 나눗셈을 진행한 총 횟수를 구하는 프로그램을 작성해보세요.

단, 나눗셈 진행시 각 나눗셈 연산에서 몫을 저장합니다.

예제 설명

50 / 1 = 50
50 / 2 = 25
25 / 3 = 8
8 / 4 = 2
2 / 5 = 0

다음과 같은 순서로 진행한다.

#include <iostream>
using namespace std;
int main(){
    int n,i,tmp;
    cin >> n;
    tmp = n;
    for(i=1;i<=n;i++){
        if((tmp/i)<=1)  break;
        tmp /= i;
    }
    cout << i;
    return 0;
}