요즘 javascript를 공부하고 있습니다.

 

반복문 구간에 들어갔는데

i 가 0에서 시작하더군요.

 

전에는 그냥 지나쳤지만

공부하는 김에 왜 i가 0에서 시작해야 하는지 궁금해 찾아봤습니다.

 

그러니

꼭 i가 0이어야 할 필요는 없다더군요.

 

그런데 작업하다 보면

i = 0일때 가장 깔끔하게 소스도 떨어지고

가독성이 높다더군요.

 

 

아~~

작업하다 보면 이게 편할거라는 말에

 

더이상 고민 안하기로 했습니다.

doorweb

?
작업자들의 하청업자
DoorWeb 입니다.
퍼블리싱부터 페이지작업까지
깔끔하게 해 드립니다.
  • ?

    i가 0인 이유는 배열 첨자가 0부터 시작하기 때문입니다.
    array_name[0]이 첫번째 요소다보니 보통 0부터 시작하는거지요.
    그럼 왜 배열의 첫번째를 1이 아니라 0이라고 표시하느냐?
    이건 C언어 때문입니다.
    C언어에서는 배열은 포인터의 다른 모습입니다.
    그래서 array_name[0]은 실질적으로 *(array_name+0)으로 해석됩니다.
    그렇기 때문에 0이어야 합니다.
    하지만 배열의 첫번째는 1인게 상식적으로 이해하기 쉽긴 하죠.
    실제로 C언어보다 먼저 만들어진 파스칼같은 언어는

    배열의 첫번째 첨자가 1부터 시작합니다.
    하여튼 이게 다 C언어때문입니다.
    C언어가 워낙 지배적인 언어였다보니.. 그 이후의 언어들은

    C언어의 영향을 안받을 수가 없었습니다.

  • ? ?
    저도
    그 다음의 배열에서 이해했습니다.
    배열에서 첫번째 요소를 불러올때가 0이더군요 ^^

    감사합니다.
  • ? profile
    글의 내용에서 배열이 0부터 시작한다는 것보다는 왜 i 를 사용하냐를 말하는 것 같아요.

    j도 있고 documentCount도 되고 그런데 왜 하필 많은것들중에 i냐고..ㅋㅋㅋ
  • profile ?
    이것도 뭘 사용해도 되지만
    넘들이 다 그거 사용하니까
    서로 이해하기 쉽게 i 사용하라더군요 ㅜ.ㅜ
  • ? profile

    배열이 1부터 시작하는 언어들은 루프를 돌릴 때도 1부터 돌리죠. ㅎㅎ

  • ? profile

    아마도 배열 내의 순서라는 뜻인 index의 약자인 것 같습니다. (array.indexOf() 함수도 있죠)

    폰트를 잘 고르지 않으면 잘 보이지도 않는... ㅡ.ㅡ.

     

    다만 루프 안에서 또 루프를 돌려야 하는 경우에는
    제일 바깥쪽 루프는 i, 그 안의 루프는 j, 세번째 루프는 k 등등
    알파벳 순서대로 변수를 바꿔쓰는 것이 관례입니다.^^

  • profile ?
    아하 감사합니다.
    이런 팁들이 피가되고 살이되다 보니 ㅋㅋ
  • ? ?

    포트란이라고 해서 C언어 이전에 굉장히 많이 쓰였던 언어가 있습니다.
    C언어가 대학에서 기본 교양 과목 언어로 가르치기 전에는

    포트란을 기본 교양 과목 언어로 가르쳤죠.
    저도 포트란을 배웠었는데 제가 아마 포트란을 배운 마지막 세대가 아닐까 하군요.

    뭐 포트란의 유산이 워낙 크다보니 아직도 남겨진 소스때문에 포트란을 쓰는 랩도

    있다고는 하더군요.

    어떤 툴들은 포트란을 자체 스크립트 언어로 쓰기도 하고...
    이 언어는 특징이 있는데 I, J, K, L, M, N이 여섯개의 알파벳은 기본적으로
    따로 변수선언을 하지 않아도 그냥 정수형 변수로 쓸 수가 있었습니다.
    대놓고 언어 레벨에서 이 변수들은 루프 돌릴때 쓰세요라고 강요한거죠.
    제가 포트란 이전까지는 잘 모르지만 하여튼 i가 index의 약자이고
    루프를 돌릴때 i를 쓰는 관행은 그 전에도 있긴 있었을겁니다...

    근데 생각해보면 포트란 이전에는 음.. 그럴만한 언어가 없어요.

    포트란이 워낙 옛날 언어라.. 포트란 이전에 루프 돌리면서

    I를 관행처럼 쓰는 언어가 있을리가... 음..

    포트란도 오랜 세월동안 조금씩 변화했을 터라 잘 모르겠네요.

    포트란 자체는 1954년에 만들어졌고 거의 태초의 언어에 가깝습니다.

    포트란 이전에 프로그래밍 관습이라는게 존재할리가 없지요...

    그러니 I를 쓰는게 포트란이 최초인지 아닌지...
    하여튼 포트란은 언어레벨에서 그걸 강제함으로 인해서
    루프를 돌릴때 무조건 i부터 시작해서 그 바깥쪽 루프는 j, k, l..
    이런 식으로 알파벳을 하나씩 늘려나가는게 정착된거죠.

    그래서 C언어에서도 어지간하면 i부터 시작해서 j, k, l..

    이렇게 쓰는게 관습적이 되었고 그 흔적이 지금까지 계속되는거죠.

  • ? ?
    덕분에 좋은 지식하나 얻어 갑니다.
    꾸벅...
  • ? profile
    저는 포트란은 듣기만 하고 C부터 했던 세대인데,
    그런 역사가 있었군요.