일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- AWS
- idToken
- javascript
- oauth
- google 로그인
- JPA
- skt fellowship 3기
- html
- 순환참조
- STT
- matplotlib
- marksense.ai
- 양방향 매핑
- 졸프
- Expo
- pandas
- react native
- YOLOv5
- @Transactional
- OG tag
- Loss Function
- google login
- 커스텀 데이터 학습
- google cloud
- 코드업
- C++
- Spring
- yolo
- 2021 제9회 문화공공데이터 활용경진대회
- Spring Boot
- Today
- Total
민팽로그
[기초 100제] 1071번 본문
https://codeup.kr/problem.php?id=1071
[기초-반복실행구조] 0 입력될 때까지 무한 출력하기1(설명)
C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용
codeup.kr
문제 설명
정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.
0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
while( ), for( ), do~while( ) 등의 반복문을 사용할 수 없다.
정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.
입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다.
(0은 출력하지 않는다.)
입력 예시
7 4 2 3 0 1 5 6 9 10 8
출력 예시
7
4
2
3
코드
#include <stdio.h>
int main()
{
int n;
reload:
scanf("%d", &n);
if (!n) goto end;
printf("%d\n", n);
goto reload;
end:
return 0;
}
참고
goto 명령문을 사용하면 간단한 반복 실행을 만들 수 있다.
반복 실행 부분을 빠져나오기 위해(즉 무한 반복을 방지하기 위해)
반복 실행 되는 도중에 조건을 검사해야 한다.
goto 이름:
이 명령은 이름: 이 작성된 곳으로 프로그램의 실행 흐름을 바꾸어 준다.
"이름:" 과 같이 콜론(:)이 붙어있는 부분을 이름표(label, 레이블)라고 한다.
레이블은 특별한 선언 없이 사용할 수 있으며 언더바(_)나 영문자로 시작하면 된다.
레이블은 한 단어처럼 공백없이 모두 붙여 써야 한다.
switch( ) ... case ... : ... break; 에서
case ... : 도 일종의 레이블이라고 생각할 수 있다.
goto 레이블:
명령을 사용하면 반복되는 부분을 여러 개 자유롭게 만들 수 있다.
goto 명령은 반복 실행을 만들어낼 수 있는 가장 간단한 명령이지만,
복잡하게(스파게티 코드) 사용하는 경우, 이해가 어렵고 오류가 생기기 쉽다.
예시
int n;
reload: //레이블은 콜론(:)으로 끝내고, 일반적으로 들여쓰기를 하지 않는다.
scanf("%d", &n);
printf("%d", n);
if(n!=0) goto reload; //reload라고 적혀있는 레이블로 실행 이동
즉, goto를 사용하면 지정된 레이블로 제어 흐름을 이동시킬 수 있음.
'PS > 코드업🎈' 카테고리의 다른 글
[기초 100제] 1092번 (0) | 2021.11.06 |
---|---|
[기초 100제] 1049번 (0) | 2021.11.02 |
[기초 100제] 1029번 (0) | 2021.11.01 |
[기초 100제] 1024번 (0) | 2021.11.01 |
[기초 100제] 1022번 (0) | 2021.11.01 |