2012-12-06 2 views
1

저는 (자바 스크립트 지식을) 더 발전시키는 데 도움이되는 몇 가지 간단한 테스트를 시도하고 있습니다. 목표 1 나는 다음과 같은 시도 5 또는 3자바 스크립트 Fizzbuzz 호

로 나누어되지 않은 1-100에서 숫자를 인쇄하는 것입니다 :

for (var i = 1; i <= 100; i ++) 
{ 
    if (i%3 !== 0 || i%5 !== 0){ 
     console.log(i); 
    } 

} 

이가 ~ 100 매주 수를 기록하고 그럴 수 없어 이유를 말해주십시오. 아마 여기에서 가장 간단한 간단한 질문일지도 모르지만 내 머리를 쓰고있어!

+3

실제로 모든 숫자가 로깅되지 않습니다. 15의 배수를 건너 뜁니다. – irrelephant

+0

흠. 내가 정말로 여기에서 배우려고 노력하고있는 것에 따라, 그것을 완전히내어주지 않으면 서 감사드립니다. 나는 생각했다. "또는"을 의미하므로 i % 3이 0이면 (즉, 3으로 나눌 수 있음을 나타냄) 해당 숫자를 인쇄하면 안됩니까? – Jascination

+1

당신은 다른 경우에 대해 잊고 있습니다 :'i % 5! == 0' – irrelephant

답변

4

||이 아닌 &&을 의미한다고 생각합니다. ||을 사용하면 기본적으로 숫자가 3 또는 5로 나눌 수 없는지 테스트합니다. 두 숫자로 나눌 수있는 숫자 인 경우 (즉, 15의 배수).

FizzBuzz에 대한 일반적인 대답은 :

if(i%3 == 0 && i%5 == 0) FizzBuzz 
elseif(i % 3 == 0) Fizz 
elseif(i % 5 == 0) Buzz 
else number 

그래서 i%3==0은 거짓과 i%5==0이 거짓으로 당신이 필요로하는 번호로 직접 얻을. 따라서

+0

실제 코드가 아니므로 필츠 (Fizz) 작성 코드를 여기에 넣으십시오. –

+0

내 코멘트를 삭제했습니다. 그래, 내가 게시하자마자 생각 했어! 도움 주셔서 감사합니다. – Jascination

+2

문제 없음 :) 향후에 이와 같은 문제가 있으면 용지를 받고 진실 표를 그려보십시오. 그것을 통해 몇 가지 값을 실행하고 그것이 옳은지 확인하십시오. 그러면 이런 문제를 발견하는 데 도움이 될 것입니다. –

-1

if(i%3 !== 0 && i%5 !== 0) 내가이 동일 NIET으로 다크 Absol이었다 공격 할 : 가장 어려운 부분

for (var n = 1; n <= 100; n++) { 
    var output = ""; 
    if (n % 3 == 0) 
     output += "Fizz"; 
    if (n % 5 == 0) 
     output += "Buzz"; 
    console.log(output || n); 
} 

하나 : 그러나

for (var n = 1; n <= 100; n++) { 
    if (n % 3 == 0 && n % 5 == 0) 
     console.log("FizzBuzz"); 
    else if (n % 3 == 0) 
     console.log("Fizz"); 
    else if (n % 5 == 0) 
     console.log("Buzz"); 
    else 
      console.log(n); 
} 

, 당신은 이런 식으로 할 수도 있습니다 JavaScript (또는 다른 언어)를 배우는 것은 솔루션이 다양한 방식으로 이해 될 수 있다는 것을 의미합니다. 첫 번째 예를 더 좋아하지만, 계속 생각하고 다른 옵션을 살펴 보는 것이 좋습니다.