7

ユーザーが2つの選択ボックスで選択した後、見積もり値を計算しようとしています。

1 つは 2 つの switch ステートメントが必要なようです。これは可能ですか?(以下の値よりも多くの可能な値があります。明確にするためにそれらを削除しました)

 var workOutQuote = function() {
        var value1 = $("#delivery_from_area").val();
        var value2 = $("#delivery_to_area").val();
        var val = '';
            switch (value1)
            { case '1':
                { switch (value2)
                    { case '1': val="90"; break; }
                    { case '2': val="80"; break; }
                    { case '3': val="70"; break; }
                }
            }
            { case '2':
                { switch (value2)
                    { case '1': val="80"; break; }
                    { case '2': val="90"; break; }
                    { case '3': val="70"; break; }
                }
            }
}

上記のコードを使用すると、次のエラーが表示されます。

Uncaught SyntaxError: Unexpected token case 
4

4 に答える 4

11

BREAK場合は、を使用しますdon't want to call all case。そうしないと、予期しない結果が得られます

 var workOutQuote = function() {
        var value1 = $("#delivery_from_area").val();
        var value2 = $("#delivery_to_area").val();
        var val = '';
            switch (value1){ 
            case '1':
                 switch (value2){
                     case '1': val="90"; break; 
                     case '2': val="80"; break; 
                     case '3': val="70"; break; 
                }

            break;
            case '2':
                 switch (value2){
                     case '1': val="80"; break; 
                     case '2': val="90"; break; 
                     case '3': val="70"; break; 
                }
                break;             
}
于 2013-10-25T08:04:19.243 に答える
3

bracesコードの例であるにケースを入れています{ case '1': val="90"; break; }

    var value1 = '2';
    var value2 = '2';
    var val = '';
    switch (value1) {
        case '1':
            {
                switch (value2) {
                    case '1':
                        val = "90";
                        break;

                    case '2':
                        val = "80";
                        break;

                    case '3':
                        val = "70";
                        break;
                }
            }
        case '2':
            {
                switch (value2) {
                    case '1':
                        val = "80";
                        break;
                    case '2':
                        val = "90";
                        break;
                    case '3':
                        val = "70";
                        break;
                }
            }
    }

デモ

于 2013-10-25T08:03:56.477 に答える
3

中かっこを過度に使用すると、(javascript 文法で含めることが義務付けられている)の後のステートメントswitch ()が早く終了します。これに調整します。

        switch (value1){
        case '1':
            switch (value2){
                case '1': val="90"; break;
                case '2': val="80"; break;
                case '3': val="70"; break;
            }
            break;            
        case '2':
            switch (value2){
                case '1': val="80"; break;
                case '2': val="90"; break;
                case '3': val="70"; break;
            }
            break;
       }

break;また、現在、最初のケースが次のケースに出くわしているため、外側のケースの間に a を自由に配置しました。

break私が追加した最後(一番下) は、わかりやすくするためにあります。多くの人はこれを含めません。

于 2013-10-25T08:06:48.657 に答える
1

各ケースを括弧で囲まないでください:

        switch (value1)
        { case '1':
            { switch (value2)
                { case '1': val="90"; break; }
                { case '2': val="80"; break; }

する必要があります:

        switch (value1)
        { case '1':
            switch (value2) {
                 case '1': val="90"; break; 
                 case '2': val="80"; break; 
            }
        }
于 2013-10-25T08:03:31.813 に答える