If else语句仅返回第一个返回值[closed]

问题描述 投票:1回答:2

关于代码战,我正在用JavaScript编写“世纪以来的世纪”问题。我确定我的解决方案不是最有效甚至不是最有效的解决方案,但我确实认为它应该可行。在我解开解决方案之前,我想弄清楚为什么这种长期的方法无法奏效。我一直在改变它,但无法弄清楚为什么每个世纪都只返回1。

输出应为:

centuryFromYear(1705)返回(18)CenturyFromYear(1900)返回(19)CenturyFromYear(1601)返回(17)CenturyFromYear(2000)返回(20)

我的输出是:

[对于1705年的测试-预期:18,相反得到了:11900年的测试-预期:19,而不是:11601年的测试-预期:17,而不是:12000年的测试-预期:20,而不是:1通过测试:值== 1

这是我的代码:

function century(year) {
    if (year >= 1 || year <= 101) {
    return 1
    } else if (year >= 101 && year < 201) {
    return 2
    } else if (year >= 201 && year < 301) {
    return 3
    } else if (year >= 301 && year < 401) {
    return 4
    } else if (year >= 401 && year < 501) {
    return 5
    } else if (year >= 501 && year < 601) {
    return 6
    } else if (year >= 601 && year < 701) {
    return 7
    } else if (year >= 701 && year < 801) {
    return 8
    } else if (year >= 801 && year < 901) {
    return 9
    } else if (year >= 901 && year < 1001) {
    return 10
    } else if (year >= 1001 && year < 1101) {
    return 11
    } else if (year >= 1101 && year < 1201) {
    return 12
    } else if (year >= 1201 && year < 1301) {
    return 13
    } else if (year >= 1301 && year < 1401) {
    return 14
    } else if (year >= 1401 && year < 1501) {
    return 15
    } else if (year >= 1501 && year < 1601) {
    return 16
    } else if (year >= 1601 && year < 1701) {
    return 17
    } else if (year >= 1701 && year < 1801) {
    return 18
    } else if (year >= 1801 && year < 1901) {
    return 19
    } else if (year >= 1901 && year < 2001) {
    return 20
    }

};
javascript
2个回答
1
投票
if (year >= 1 || year <= 101) 

如果年份大于或等于1,则返回1。


-3
投票

没关系,我只是意识到我放了||在第一行中。

© www.soinside.com 2019 - 2024. All rights reserved.