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

如果整数大于x但小于y(Swift),swift,if-statement,integer,range,Swift,If Statement,Integer,Range,我想知道是否有任何平滑的方法可以检查swift中某个范围内的整数的值 我有一个整数,可以是0到1000之间的任何数字 我想为“如果整数在300和700之间-做这个,如果是任何其他数字-做其他事情”写一个if语句 我可以写: if integer > 300 { if integer < 700 { //do something else1 } //do something } else { // do something else2 }

我想知道是否有任何平滑的方法可以检查swift中某个范围内的整数的值

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

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

我可以写:

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

}
如果整数>300{
如果整数<700{
//做点别的
}
//做点什么
}否则{
//做点别的事2
}
但我想尽量减少要编写的代码量,因为“做其他事情1”和“做其他事情2”应该是相同的

你似乎不能写:

if 300 < integer < 700 {

} else {

}
如果300
我试着用

if integer == 300..<700 {
}
如果整数==300..您尝试过这个吗

if integer > 300 && integer < 700 {
    // do something
} else {
    // do something else               
}
if integer>300&&integer<700{
//做点什么
}否则{
//做点别的
}

希望这有帮助

有一种类型,
HalfOpenInterval
,它可以用
..
构造,并且有一个
。包含
方法:

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

您应该真正阅读文档:“我尝试使用”if integer==300..感谢您指出这一点!所以最短的方法是使用if 300。。。700~=整数{//做点什么}其他{//做点什么}谢谢,这确实有效!我认为可能有一种更简短的方法来编写它,而不必重复使用&&和“integer”,但这可能是最好的方法。谢谢你事实上我确实找到了一个马丁R指给你写的简短方式:如果300。。。700~=整数{}William+1,但使用半开运算符!有趣的是,当Xcode 6.3处于优化模式时,这也给出了与
if integer>300和
if 300相同的“优化”汇编代码。。。700~=integer
我刚刚添加到其中。是的,显然所有的标准库代码都可以内联(而且swift编译器非常热衷于内联-O),正如Willian Larson指出的,contains操作符可以用于更短的语法,在
if 300中..我不确定
~=
操作符的真正用途是什么,我认为这更多的是作为切换的基本机制,而不是应该单独使用的东西<代码>。包含更清晰的IMHO意向信号。
let interval = 301..<700 as HalfOpenInterval
if interval.contains(integer) {
  // etc.
}