[완료] 라벨 컨티뉴 코드 분석
글쓴이: gumagula / 작성시간: 토, 2012/04/21 - 9:26오후
public class LabelContinue { public static void main(String[] args) { int count = 0; outer: for (int i = 0; i<10; i++){ inner: for (int j = 0; j<10; j++){ if (j==2) continue inner; if (j==5) continue outer; ++count; } if (i==8) continue; ++count; } System.out.println("count = " +count); } }
위와같은 코드의 인쇄되는 count값을 유추를 하라고 합니다. (컴파일러 없이 손으로...)
단순한 for문이나 continue문은 어떻게 될 지 대충 짐작이 되는데 (다중문 말고 단일 사용 같은 경우)
저러한 경우는 어떠한 원리로 동작하는지 도저히 감이 안잡혀서 이렇게 글을 써봅니다.
컴파일러로 돌리면 카운트 값은 40이 뜨긴 하는데...
도움 부탁드리겠습니다...
Forums:
눈으로 확인하고 싶으면 곳곳에 print문을 넣어서
눈으로 확인하고 싶으면 곳곳에 print문을 넣어서 현재 i,j,count 값을 출력해서 보면 되겠죠. 특히 ++count 직전에 넣은 프린트문은 count증가가 언제 일어나는지 확인하는데 도움이 될 거고요.
종이와 펜으로만 푼다면,
j가 5가 되면 바로 바깥 루프의 다음 반복으로 넘어가니까
이 부분은 실행되지 않는다는 걸 알 수 있고,
안쪽 루프가 딱히 i값에 따라 다르게 동작하는 부분이 없으니, i=1부터는 더 해볼 필요도 없이 계속 똑같은 과정을 거치는 걸 알 수 있고,
그럼 count 증가는 안쪽루프에서 4번, 이걸 바깥쪽 루프가 10번 도니까 40번.
뭐 이런 식으로 세어 나가면 되지 싶습니다.
좋은 하루 되세요!
정말 감사드립니다
읽어보니 딱하고 이해가 바로 오네요 ㅠㅠ 감사합니다
댓글 달기