Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在swift中创建数字范围_Ios_Numbers_Range - Fatal编程技术网

Ios 如何在swift中创建数字范围

Ios 如何在swift中创建数字范围,ios,numbers,range,Ios,Numbers,Range,我正在创建一个iOS应用程序,我遇到了一个需要帮助克服的障碍。我的问题是,我的应用程序使用了一个计分计数器,我希望该应用程序能够为用户提供一定分数的奖牌。例如,如果用户得分为20,我希望应用程序给他们一枚铜牌,如果用户得分在21-49之间,他们将获得一枚银牌。我希望你能明白。我试过这个: if String(score) > 55{ medal = SKSpriteNode(imageNamed:"medalG") } var x = 20 var

我正在创建一个iOS应用程序,我遇到了一个需要帮助克服的障碍。我的问题是,我的应用程序使用了一个计分计数器,我希望该应用程序能够为用户提供一定分数的奖牌。例如,如果用户得分为20,我希望应用程序给他们一枚铜牌,如果用户得分在21-49之间,他们将获得一枚银牌。我希望你能明白。我试过这个:

if String(score) > 55{
         medal = SKSpriteNode(imageNamed:"medalG")
    }
    var x = 20
    var y = 50

    if (String(score) = x...y){
        medal = SKSpriteNode(imageNamed:"medalS")
    }
    if String(score) < 20{ //this line always gives me issues
        medal = SKSpriteNode(imageNamed:"medalB")
    }
如果字符串(分数)>55{
奖牌=SKSpriteNode(图像名称:“medalG”)
}
变量x=20
变量y=50
如果(字符串(分数)=x…y){
奖牌=SKSpriteNode(图像名称:“奖牌”)
}
如果String(score)<20{//这一行总是给我带来问题
奖牌=SKSpriteNode(图像名称:“medalB”)
}
我试着用这个替换第二个“如果”行

if (String(score) = x..<y){ }

if(String(score)=x..Range有一个方法
contains
,您可以使用该方法检查某个特定值是否位于范围的端点之间。但是您最好使用
switch
语句——它的区间匹配基本上是为这种情况设计的

您可以执行以下操作:

// assume score is an Int defined above
switch score {
   case 0...20:
      medal = SKSpriteNode(imageNamed: "medalB")
   case 21...49:
      medal = SKSpriteNode(imageNamed: "medalS")
   case 50...60:
      medal = SKSpriteNode(imageNamed: "medalG")
   default:
      print("It is inconceivable that you are this good.")
}
请记住,switch语句必须是详尽的,即必须有一个case来匹配要切换的表达式的每个可能值。这就是我在上面添加默认值的原因。

您可以使用“pattern match”操作符~=:

if 20 ... 50 ~= String(score) {
    println("success")
}
或具有表达式模式(内部使用模式匹配运算符)的switch语句:

需要更多帮助

if 20 ... 50 ~= String(score) {
    println("success")
}
switch String(score) {
case 20 ... 50:
    println("success")
default:
    println("failure")
}