게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
for문안에 for문을 돌릴려고 합니다 효율적인 방법이 있을까요?
게시물ID : programmer_12562짧은주소 복사하기
작성자 : 문식이당
추천 : 0
조회수 : 1012회
댓글수 : 19개
등록시간 : 2015/08/05 13:50:40
옵션
  • 본인삭제금지
안녕하세요 for문안에 for문을 해볼려고 합니다.


for (var i=0; i<10; i++){
for(var j=0; j<100; j++){
if(i == j){
// 만약에 i와 j가 같다면
console.log(a);
}
}
}


한눈에봐도 간단한 for문 입니다

a의 값은 0 ~9 인데 이걸
b의 값 0~ 99 까지와 비교를 하여 0 ~ 9 를 뽑아내는 식 입니다.

이렇게 했을시 안좋은 점은

a가 0 일때 b를 0~ 99 번 돌려서 비교후 0 출력
a가 1 일때 b를 0~ 99 번 돌려서 비교후 1 출력
.
.
.
a가 9 일때 b를 0~ 99 번 돌려서 비교후 9 출력

이렇게 100 번씩 10번의 동작으로 100 * 10 이란 어마어마한 동작을 하고 있습니다.
여기서 제가 생각한 방법은




a가 0 일때 b를 0~ 99번 돌려서 찾는다
a = 0  ( a가 0일때 )
b = 0  ( b가 0이다 0출력후 b를 돌리는 for문 바로 종료 )



a가 1 일때 b를 0~ 99번 돌려서 찾는다
a = 1  ( a가 1일때 )
b = 0  ( b가 0이다 아니므로 다음 동작)
b = 1  ( b가 1이다 1출력후 b를 돌리는 for문 바로 종료 )



a가 2 일때 b를 0~ 99번 돌려서 찾는다
a = 2  ( a가 2일때 )
b = 0  ( b가 0이다 아니므로 다음 동작)
b = 1  ( b가 1이다 아니므로 다음 동작)
b = 2  ( b가 2이다 2출력후 b를 돌리는 for문 바로 종료 )




a가 3 일때 b를 0~ 99번 돌려서 찾는다
a = 3  ( a가 3일때 )
b = 0  ( b가 0이다 아니므로 다음 동작)
b = 1  ( b가 1이다 아니므로 다음 동작)
b = 2  ( b가 2이다 아니므로 다음 동작)
b = 3  ( b가 3이다 3출력후 b를 돌리는 for문 바로 종료 )
.
.
.

이런식이라면 100 번씩 10번이 아닌

a가 0 일때는 1번 동작
a가 1 일때는 2번 동작
a가 3 일때는 3번 동작으로 총

1 + 2 + 3 + 4 + 5 ... + 9 = 45번이면 원하는 동작이 나오게 됩니다.

이런식으로 2번째 for문에서 조건이 맞았을시 2번째 for문만 종료하고 다음 첫번째 for문으로 넘어가는식의 for문은
어떻게 작성 해야 할까요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호