뉴비 시절의 추억

번외편) 여러모로 쓰기 좋은 break, goto

태장고 21302 2021. 3. 30. 19:29

break는 {}를 벗어날 수 있게 해 주는 코드이다. 예를 들어 만약 n번 반복하는 코드에서 a가 6이 맞으면 6을 출력하고

실행을 끝내는 코드를 만들어 보겠다.

 

#include <stdio.h>

 

int main()

{

 int n, a;

 scanf("%d%d", &n, &a);

 for(int i=1; i<=n; i++)        // i가 n이 될 때까지 반복한다.

 {

     if( a == 6 )                 // a가 6이면 {}를 실행한다

     {

          printf("%d", a);

          break;                  // 반복문이 끝나지 않았더라도 반복문 다음을 실행한다.

     }

 }

 

return 0;

}

 

이렇게 코드를 짜면 n이 6보다 클 경우에 어떤 값이 입력이 되든 6이 출력될 수 있다.

 

다음으로 goto는 원하는 위치로 이동할 수 있게 해주는 코드이다. 흔히 아는 텔레포트를 코드 내에서 실현시킬 수 있는 것이라고 생각하면 된다.

 

#include <stdio.h>

 

int main()

{

 int n;

 scanf("%d", &n);

reload:                  // 이 곳에서 다시 실행 (주의!! reload 뒤에 쓰는 것은 ' ; '이 아니라 ' : '이다.)

 if( n >= 0 )           // 만약 n이 0보다 크다면 {}안의 내용을 실행

 {

     printf("%d", n);

 }

 else

 {

    goto reload;      // reload: 가 있는 곳으로 이동

 }

 

return 0;

}

 

이렇게 하면 n이 0보다 작을 경우 다시 돌아가서 if 문부터 실행시킬 수 있다. 즉 판별을 2번 할 수 있다는 것이다.

여러가지에 활용이 가능함으로 잘 알고 있다가 써보자!