happy cat image

everdevel

우리 모두의 웹 입문, 에버디벨

에버디벨이 책을 냈어요.!!
눌러주세요.

지은이 : 에버디벨 운영자

UI 변경

for 문

이번 시간에는 for 문에 대해서 알아봅시다.

for문도 while문처럼 반복문입니다.

for문은 조건식 안에서 (변수 선언 및 초기값 설정; 조건식; 증감식)으로 이루어져 있으며 초기값이 조건식에 참인 동안 명령문을 실행 합니다.

구조는 다음과 같습니다.

for문의 구조

for(변수 선언 초기값 설정;조건식;증감식){
  조건이 참인 동안 실행할 명령문;
}

그럼 실제 소스로 구조를 보겠습니다. 다음 소스는 1부터 10까지를 출력하는 것입니다.

for(a = 1; a <= 10; a++){
  document.write(a);
}

for문의 실행 순서

1. (a = 1) 변수 선언 및 초기값 설정, 변수 a 선언 및 값을 1로 선언.

2. (a <= 10) 조건 실행, a가 10과 같거나 작을 동안에 명령문을 실행

3. (document.write(a)) 2번에서 명령문을 실행 하므로 document.write(a)에 의해 화면에 1출력

4. (a++) 증감식 실행 하므로 a값은 1에서 2로 변경

5. (a <= 10) 조건 실행, a가 10과 같거나 작을 동안에 명령문을 실행

6. (document.write(a)) 2번에서 명령문을 실행 하므로 document.write(a)에 의해 화면에 2출력

7. (a++) 증감식 실행 하므로 a값은 2에서 3로 변경

8. (a <= 10) 조건 실행, a가 10과 같거나 작을 동안에 명령문을 실행

6. (document.write(a)) 2번에서 명령문을 실행 하므로 document.write(a)에 의해 화면에 3출력

7. (a++) 증감식 실행 하므로 a값은 3에서 4로 변경

.

.

.

.

(a++) 증감식 실행 하므로 a값은 9에서 10로 변경

10 이므로 이제 for문에서 빠져 나옴.

혹시 이해 안가시는 분을 위해 그림으로 설명

그림으로 보는 for문 순서

for

아이패드를 통해서 그려보았는데요. 번호 순 대로 for문은 작동합니다.

실제 예문을 통해서 테스트 해봅시다.

<!DOCTYPE html>
<html>
<head>
<title> 웹 에디터에서 제이쿼리 예제가 구동이 안될시에는 파이어폭스(권장) 또는 인터넷 익스플로러를 이용해주세요.</title>
<style type="text/css">
</style>
<script type="text/javascript">
for(a = 1; a <= 10; a++){
  document.write(a);
}
</script>
</head>
<body>
</body>
</html>

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>

제가 처음에 for문을 겪을때 무슨 말인지 못알아 먹어서 모르시는 분께서 아시도록 최대한 설명을 해봤는데 잘 되었는지 모르겟네요. ㅜㅜ

그럼 이중 포문을 응용하는 구구단 소스가 있는데요. 한번 보면서 이해해 보시기 바랍니다.

이문 포문을 이용한 구구단

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>자바스크립트</title>
<style type="text/css">

</style>
<script type="text/javascript">
for(a = 2; a<=9; a++){
document.write(a+"단 <br />");
for(b = 1; b<=9;b++){
document.write(a+"*"+b+"="+(a*b)+"<br />");
}
document.write(a+"단 끝<br />");
}
</script>
</head>
<body>

</body>
</html>

이걸로 이중포문에 대한 설명을 마치겠습니다.

에버디벨의 완성 :: 웹코딩 시작하기

안녕하세요.
에버디벨 운영자입니다.
여러분이 늘 이용해 주셔서 하루 5명 오는 사이트가 1000명이 오는 사이트가 되었고,
또 그 이유로 사이트를 운영을 멈추지 않아 저같은 평범한 사람이 책까지 쓸 수 있게 되었습니다.
여러분이 찾지 않았다면 진작 사이트 접었습니다.
저의 웹개발 경력 2년을 쏟아내어서 6개월의 집필, 8개월의 교정기간을 거쳐 [웹코딩 시작하기]가 출간했습니다.
웹코딩 시작하기는 HTML5를 시작으로 CSS3 -> jQuery를 학습합니다.
그리고 앞에서 배운 내용으로 간단한 소통사이트를 반응형으로 제작합니다.
보통의 책은 HTML5 + CSS3로 끝나고 혹은 HTML5 + CSS3 + jQery로 끝나지만 웹코딩 시작하기는 여기서 끝내지 않았습니다.
그 다음 바로 데이터베이스중 하나인 MySQL를 학습하고, 그 이후 PHP를 학습니다. 그리고 앞에서 만든 소통사이트에 회원가입, 로그인 기능은 기본으로 진행하며, 스크롤이벤트를 이용하여 스크롤을 내리면 AJAX를 작동시켜 게시물을 더 불러오는 기능을 구현하고 자기의 로그기록을 파일에 쓰기, 그 밖에 자신의 프로필사진, 커버사진 등록, 댓글 쓰기등의 기능을 적용합니다.
본서는 웹코딩을 처음하는 사람이 하나에서 끝나지 않고 처음부터 시작해 프로젝트까지 완성해가며 전체적으로 시스템이 어떻게 작동하는지 전반적으로 알게하기 위해 태어났습니다.
적어도 지구에서 가장 친절한 웹 입문서라고 생각하는 책입니다.
에버디벨로 부족하셨다면 웹코딩 시작하기를 추천합니다.

어제보다 나은 나, 오늘 보다 나을 내일의 나를 만드는 :: 웹코딩 시작하기

목차보기

종이책 구입하기

전자책 구입하기

PART 1. 프론트엔드 HTML5 + CSS3 + jQuery

CHAPTER 1. HTML5

1. HTML5 소개

2. 메타 태그

3. 텍스트 태그

4. 이미지 태그

5. 하이퍼링크 태그(a 태그)

6. 리스트 태그

7. form 태그

8. 공간 태그

9. video 태그

11. svg와 canvas

12. table 태그

CHAPTER 2. CSS3

1. CSS 소개

2. CSS를 적용하는 세 가지 방법

3. 선택자(selector)

4. 텍스트를 꾸미는 CSS 요소

5. 가로 길이와 세로 길이 조정하기

6. 텍스트가 영역을 벗어날 때

7. HTML 엘리먼트의 위치 변경하기

8. 배경 꾸미기

9. 외곽선 긋기

10. float와 clear

11. 박스의 바깥 여백 설정하기

12. 박스의 안쪽 여백 설정하기

13. CSS 리셋

14. 애니메이션

15. transform

16. transition

17. display

18. 반응형 웹

19. 반응형으로 간단한 레이아웃 만들기

20. SVG 태그

CHAPTER 3. jQuery

1. jQuery 시작하기

2. 셀렉터

3. 엘리먼트 보이기와 숨기기

4. 클릭했을 때 무언가 하기

5. 마우스 포인터를 요소 위에 올릴 때 무언가 하기

6. 제이쿼리로 CSS 적용하기

7. 변수 사용하기

8. HTML 엘리먼트에 있는 텍스트 변경하기

9. HTML 태그 제어하기

10. 애니메이션 기능

11. 엘리먼트에 클래스 추가, 삭제하기

12. 엘리먼트의 이동

13. 폼 태그의 값 조정

14. 포커스

15. this 사용하기

16. 연산자

17. 함수 만들기

18. 변수에 대해서

19. 글로벌 변수와 로컬 변수

20. 조건문

21. 반복문

22. 스크롤 이벤트

23. AJAX

24. canvas 태그(HTML5)

project 나의 첫 웹서비스 만들기

CHAPTER 1. 나의 첫 웹서비스 프로젝트 소개

CHAPTER 2. 나의 첫 웹서비스 만들기 프로젝트 - front end

1. 메인 페이지 만들기(index.html)

2. 나의 페이지 만들기(me.html)

3. 모두의 페이지 만들기(all.html)

PART 2. 백엔드 MySQL + PHP

CHAPTER 1. MySQL

1. 데이터베이스란?

2. MySQL 시작하기

3. 데이터베이스 만들기

4. 테이블

5. 필드의 데이터 크기와 데이터형 지정하기

6. 테이블 생성하기

7. 필드의 추가, 수정, 삭제

8. 테이블 삭제하기

9. 테이블에 데이터 입력하기

10. 데이터 불러오기

11. 데이터의 값을 변경, 삭제하기

12. 테이블 초기화

13. 2개 이상의 테이블 사용하기(JOIN)

14. 집계함수

15. 그룹별 집계

16. 출력 결과의 정렬

17. 불러올 레코드 수 지정하기

18. 2개 이상의 테이블을 묶어 사용하기

19. 쿼리문 안의 쿼리문 서브쿼리

20. 특정 필드에 같은 값을 넣지 않는 방법

21. 서로 다른 필드의 값을 합쳐서 출력하기

22. 검색을 더욱 빠르게 하는 인덱스

CHAPTER 2. PHP

1. PHP 소개

2. 출력문

3. 주석

4. 변수

5. 연산자

6. 배열>

7. 데이터형

8. 조건문

9. 반복문

10. 함수

11. 함수 만들기

12. POST와 GET

13. 기능의 사물화

14. 코드의 재활용

15. PHP와 MySQL의 연동

16. 상수

17. 정규 표현식

18. 파일 업로드

19. 디렉터리 함수

20. 파일 함수

21. Anchor 태그의 ping 속성과 AJAX

22. 쿠키와 세션

23. 객체지향 프로그래밍

project 나의 첫 웹서비스 만들기

CHAPTER 3. 나의 첫 웹서비스 만들기 프로젝트 - back end

3-1. 회원가입 기능

3-2. 로그인, 로그아웃 기능

3-3. 게시물 등록하기

3-4. 게시물 불러오기

3-5. 댓글 등록하기

3-6. 댓글 불러오기

3-7. 게시물 공감하기

3-8. 모두의 페이지

3-9. 포토 업로드 기능

3-10. 나의 로그 만들기

강좌로 돌아가기