如果整数大于x但小于y(Swift)

时间:2015-04-04 13:19:42

标签: swift if-statement integer range

我想知道是否有任何平滑的方法来检查swift范围内的整数值。

我有一个整数,可以是0到1000之间的任何数字

我想写一个if语句,“如果整数在300到700之间 - 这样做,如果是其他任何数字 - 做其他事情”

我可以写:

if integer > 300 {
    if integer < 700 {
      //do something else1
    }
    //do something
} else {
    // do something else2

}

但我希望尽量减少要编写的代码量,因为“执行其他操作1”和“执行其他操作2”应该是相同的

似乎你不能写:

if 300 < integer < 700 {

} else {

}

我尝试使用

if integer == 300..<700 {
}

但这也不起作用。有人有建议吗?

2 个答案:

答案 0 :(得分:12)

你试过这个吗?

if integer > 300 && integer < 700 {
    // do something
} else {
    // do something else               
}

希望这有帮助

答案 1 :(得分:8)

有一种类型HalfOpenInterval,可以使用...构建,并且具有.contains方法:

if (301..<700).contains(integer) {
    // etc.
}

注意,301..<700本身会创建一个Range,它没有contains函数,但是Swift的类型推断会看到你正在调用一个只有{{1}的方法} has,所以选择特定的重载。

我之所以提到这一点,是因为如果您想将间隔存储为变量而不是在线使用,则需要指定:

HalfOpenInterval