for문 속의 for문 = 이중 포문
이중포문이라 하면 괜히 어렵게 들릴수도 있지만 그냥 포문 안에서 또 포문을 선언하는 것입니다. ^^
즉 for문의 조건이 만족하여 명령문을 실행하는데 그 명령문이 for문 인거죠^^
구조는 다음과 같습니다.
이중포문 구조
for(변수 선언 및 초기값 설정; 조건식; 증감식){
for(변수 선언 및 초기값 설정; 조건식; 증감식){
}
}
첫 번째 포문에서 조건에 맞으면 두번째 포문이 작동하며 두번째 포문이 조건을 만족하는 동안 두번째 조건의 명령문을 실행하며 두번째 포문의 조건이 끝나면 다시 첫번째 포문으로 돌아가서 명령을 실행하여 두번째 포문이 실행을 합니다. .
이해 가능한 간단한 소스를 작성해보겠습니다.
for(a = 1; a<= 3; a++){
document.write("<br />"+a+"첫번째 포문에 의해 출력 되었습니다. <br /><br />");
for(b = 1; b<=3;b++){
document.write(b+"두번째 포문에 의해 출력 되었습니다. <br />");
}
}
위의 소스에서 첫 번째 for문의 a가 1이고, 조건식에 의해 a가 3보다 같거나 작으면, 실행합니다.
그럼 지금 a가 1이기 때문에 현재 조건에 만족을 하고 있으므로 실행 합니다.
.
두번째 포문에 보면 b는1이고 b가3보다 작을 동안 이라고 쓰여져 있습니다.
그러므로 조건에 만족하므로 실행합니다.
그 다음 실행 해야 하는 것은 증감식 입니다. b++를 실행하면
b는 1에서 2가 되어 다시 두번째 포문에 의해 출력 되었습니다.라는 문구를 출력 하며 증감식에 의해 b는 3이 됩니다.
조건은 3보다 같거나 작을 동안 이기 때문에 3은 3과 같거나 작으므로
다시 두번째 포문에 의해 출력 되었습니다.라는 문구를 출력합니다.
다시 증감식에 의해서 b는 3에서 4가 됩니다. 조건에 만족하지 않으므로 수행중이던for문에서 빠져 나가게 됩니다.
그럼 첫번째 포문의 a가 1일때의 실행문을 모두 실행을 한것 입니다.
그러므로 첫번째 실행문을 실행했으므로 증감식 a++가 대입 됩니다. 그럼 a값이 1이기 때문에 2로 변환되고
첫번째 포문의 조건인 a가 3보다 작거나 같으면에 만족하므로 다시 두번째 포문이 작동을 하게 됩니다.
그렇게 위와 같이 두번째 포문은 또 다시 처음부터 작동하여 b의 값은 다시 1이 되며
출력문을 출력 하고 증감식 의해 b는 2가 되고 조건에 참이므로 실행문을 실행 후 증감식에 의해 3이 되고
조건에 만족하므로 출력문을 출력하고 증감식에 의해 다시 4가 되어서
조건에 만족하지 않으므로 두번째 포문에서 빠져 나가게 되고
첫번째 조건문으로 돌아오게 되며 첫번째 포문에서 a 는 2이기 때문에 증감식에 의해서 a는 3이 되고 3이 된후 조건에 만족하므로
실행문을 실행하여 두번째 포문을 다시 작동하게 됩니다.
이제 실제 소스를 타이핑해서 결과물을 봅시다.
<!DOCTYPE html>
<html>
<head>
<title> .</title>
<style type="text/css">
</style>
<script type="text/javascript">
for(a = 1; a<= 3; a++){
document.write("<br />"+a+"저는 첫번째 포문에 의해 출력 되었습니다. <br /><br />");
for(b = 1; b<=3;b++){
document.write(b+"저는 두번째 포문에 의해 출력 되었습니다. <br />");
}
}
</script>
</head>
<body>
</body>
</html>
위 소스를 실행해 보시기 바랍니다.
그럼 이중 포문을 응용하는 구구단 소스가 있는데요. 한번 보면서 이해해 보시기 바랍니다.
이문 포문을 이용한 구구단을 만들어 보면
위 소스를 실행하시면
구구단이 출력됨을 보시게 될 것입니다.
직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면 아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사) (회원가입을 하시면 편리한 시간에 자세히 설명해드립니다)
'프로그래밍 > MS-SQL' 카테고리의 다른 글
SQL 기본 구문 (0) | 2018.03.04 |
---|---|
프로그래밍기초] break문 (0) | 2017.09.13 |
[프로그래밍기초] continue문 (0) | 2017.09.13 |
[프로그래밍기초] 반복문연습 (for문) (0) | 2017.09.12 |
[SQL 문] SQL 종류, Select 문, 계정생성 및 권한부여 (0) | 2017.08.17 |