루비를 배웠습니다. 그리고 나는 작은 프로그램을 썼다. 지금까지 해결할 수없는 논리적 오류에 직면하고 있습니다. 여기에 코드가 있습니다.논리 오류 루블에서 모듈러스 % 연산자를 사용하는 동안
1: puts 'Please enter the starting Year'
2: startingYear = gets.chomp
3: puts 'Please enter the ending Year'
4: endingYear = gets.chomp
5: while(startingYear.to_i <= endingYear.to_i)
6: if(startingYear%4 == 0)
7: if((startingYear%400 == 0) or (startingYear%100 != 0))
8: puts startingYear
9: end
10: end
11: startingYear = startingYear.to_i + 1
12: end
다음은이 프로그램의 기능입니다.
시작 연도와 종료 연도를 물어 본 다음 윤년을 모두 씁니다 (윤년 인 경우 포함). 도약 년은 4로 나눌 수있는 연도입니다 (1984 년과 2004 년과 같이). 그러나 100으로 나눌 수있는 연도는 윤년이 아니며 (예 : 윤년 인 1600과 2000과 같이) 400으로 나눌 수있는 경우가 아니면 1800 년과 1900 년과 같은 윤년이 아닙니다.
Ruby 디버거도 사용했습니다. 프로그램을 실행하면 첫 번째 반복에서 행 번호 6을 건너 뜁니다. 그 후 완전히 잘 작동합니다.
예 : 시작 연도에 입력 1600을 사용하고 종료 연도에 2000을 사용할 때. 출력은
1604, 1608, 1612, 에서 시작됩니다. . . . . 1696, 1704, 1708, . . . . . . 1992 년, 1996 년, 논리적으로는 1600도 표시해야하지만 프로그램에서는이를 건너 뜁니다. 나는 그것이 단지 오류와 같은 헤어 라인이라는 것을 안다. 그러나 나는 그것을 알아낼 수 없다.
P. 나는 초보자이기 때문에 어떤 종류의 어리석은 실수라도 무시하십시오. 감사합니다
정말 고맙습니다. 당신은 내 하루를 구했다 :) –