1

この例は、switchステートメントで範囲を機能させるためのものです。

function GetText(value)
{
    var result;

    switch (true)
    {
        case ((value >= 26) && (value <= 50)):
            result = ">= 26.";
            break;

        case ((value >= 1) && (value <= 25)):
            result = "Between 1 and 25.";
            break;

        case (value == 0):
            result = "Equals Zero.";
            break;

    }

    return result;
}

しかし、コードを変更して値の2番目のチェックを削除しても、例は引き続き機能します。

function GetText(value)
{
    var result;

    switch (true)
    {
        case ((value >= 26)):
            result = ">= 26 .";
            break;

        case ((value >= 1)):
            result = "Between 1 and 25.";
            break;

        case (value == 0):
            result = "Equals Zero.";
            break;

    }

    return result;
}

したがって、2つのtrueケースがあっても29を通過すると、最初のケースが選択されます。私の質問は、ほとんどのプログラミング言語でswitchステートメントがどのように機能するかということです。この場合、上から比較するか、この場合のみ比較を開始します(そして、そのように書くのは良いのか悪いのか)。

4

2 に答える 2

2

switchステートメントは、上から下への一致をチェックします。

switchステートメントに関するMDNドキュメントから:

一致するものが見つかった場合、プログラムは関連するステートメントを実行します。複数のケースが指定された値と一致する場合、ケースが互いに等しくなくても、一致する最初のケースが選択されます。

于 2012-06-03T19:16:49.323 に答える
1

私はこのようなことをします(ifelse ifチェーンで):

function GetText(value) {
    var result;

    if (value == 0) {
        result = "Equals Zero.";
    } else if (value <= 25) {
        result = "Between 1 and 25.";
    } else if (value <= 50) {
        result = "Between 26 and 50.";
    }

    return result;
}
于 2012-06-03T19:37:17.680 に答える