var date = new Date();
do {
var sel = date.toString();
document.write(sel + "<br>");
date.setDate(date.getDate()+1);
} while(date.getDate() != 2 && date.getMonth() != 2)
왜 1 월 1 일에 중지됩니까?2 개월 빨리 멈추는 동안?
var date = new Date();
do {
var sel = date.toString();
document.write(sel + "<br>");
date.setDate(date.getDate()+1);
} while(date.getDate() != 2 && date.getMonth() != 2)
왜 1 월 1 일에 중지됩니까?2 개월 빨리 멈추는 동안?
두 번째 반복에서 .getDate
은 2이므로 while을 실행할 수 없습니다. 완료되면 중지 시키려면 3으로 늘려야합니다.
날짜에 추가하는 내용에 대해 코드에 명시 적으로 명시한 경우에도 해를 입히지 않습니다.
에서 2.02 체크 코드로 이동 GETDATE 2의 경우 속하는 getMonth가 0 일 때 왜 실행할 수 없습니다 원하는 경우 ? – Mantar
그 조건은 false로 평가되기 때문에 while에서 빠져 나옵니다. getDate! = 2 -> false. false && true == false. –
3 월이나 2 월에 치면 루프가 더 이상 실행되지 않습니다. 이것은 월이 0부터 시작하여 1 월이 0이고 12 월이 11이기 때문입니다.
자바 스크립트에서 월은 1 월에 색인 0에서 시작합니다. 필요에 따라 루프를 조정해야합니다.
는 몇 달 그렇게 월 date.getMonth() == 0의 1에 0에서 시작 믿는! =
그래서 1 월 1 일에 멈추지 않아야합니다 ... 조건이 참입니다. –
그렇습니다! 나는 그 질문에 대해 안주를해야만한다. 감사. –
1 월 2 일에 첫 번째 조건이 거짓 반환하고 실행이 중지되기 때문에 2.
} while(date.getDate() != 2 || date.getMonth() != 1)
// Stops when day is 2 and month is 1 (February)
또는 :
} while(!(date.getDate() == 2 && date.getMonth() != 1))
모두 동일한 것을 의미 난 당신이 스크립트는 조건은 다음과 같이해야하는 경우 년 2 월 2 모든 방법을 계속하려는 가정합니다. 2 월이이 같은 출력 결과 1. 그래서 달이 제로 색인 참고 :
...
Fri Jan 28 2011 14:57:00 GMT+0200
Sat Jan 29 2011 14:57:00 GMT+0200
Sun Jan 30 2011 14:57:00 GMT+0200
Mon Jan 31 2011 14:57:00 GMT+0200
Tue Feb 01 2011 14:57:00 GMT+0200
첫 번째 것은 getDate == 2 또는 getMonth == 1.에서 멈춰야합니다. 어느 것이 이해가되지 않습니다. 두 번째 것은 1 월 1 일에 끝납니다. – Mantar
@Meke, 당신이하려는 일에 대해 설명해 주시겠습니까? 그리고 제가 제공 한 예제는 유효하고 작동하며 정확히 똑같은 것을 의미합니다. 둘 다 2 월 1 일에 끝납니다. 내가 올린 URL을보십시오. –
@Meke, 이런 식으로 주석을 작성하기 전에 코드를 테스트해야합니다. @Tatu Ulmanen이 첫 번째 문장에 맞습니다. 이해가됩니다. – codea
물론. &&. getMonth가 0 일 때 그 이유는 무엇입니까? – Mantar
코드에서 'while'은'getMonth() == 2 '또는'getDate() == 2'일 때 멈출 것이다. 내 코드에서 그것은'getMonth() == 1'과'getDate() == 3' 둘 다 멈출 것이다. http://en.wikipedia.org/wiki/De_Morgan's_laws을 확인하십시오. –
Ohh interesting. 나는 링크를 주셔서 감사합니다! – Mantar