0

ユーザースコアに対応する、表示する必要がある単語を検出する必要があります。

次のスイッチがあります:

switch (score) {
        case 0:
            outString = @"String1";
            break;
        case 1:
            outString = @"String2";
            break;
        case 2:
            outString = @"String3";
            break;
        case 3:
            outString = @"String3";
            break;
        case 4:
            outString = @"String3";
            break;
        case 5:
            outString = @"String1";
            break;
        case 6:
            outString = @"String1";
            break;
        case 7:
            outString = @"String1";
            break;
        case 8:
            outString = @"String1";
            break;
        case 9:
            outString = @"String1";
            break;           

        default:
            break;
    }

しかし、スコアが 29 または 109 のときに同じスイッチを使用するにはどうすればよいでしょうか。したがって、最初のケースでは 20 をトリミングして 9 を取得し、2 番目のケースでは 100 をトリミングして 9 を取得する必要があります。

以前にこのアルゴリズムを使用しましたが、方法を忘れました:(

次は目標です。毎回、0 から 9 までの 100 分の 1、100 分の 1、1000 分の 1 の数字が必要です。

4

2 に答える 2

4

単語が常に数値の最後の桁に依存する場合は、単にスイッチ条件で使用できます (モジュラス演算子を使用):

switch (score % 10)
   ...

29 と 129 だけが特別なケースである場合、同じケースに複数のラベルを使用できます。

case 9:
case 29:
case 109:
        outString = @"String1";
        break;
于 2013-08-12T11:45:43.577 に答える