if integer is greater than x but less than y (Swift)
Solution 1
Did you try this?
if integer > 300 && integer < 700 {
// do something
} else {
// do something else
}
Hope this helps
Solution 2
There is a type, HalfOpenInterval
, that can be constructed with ...
and that has a .contains
method:
if (301..<700).contains(integer) {
// etc.
}
Note, 301..<700
on its own will create a Range
, which doesn’t have a contains function, but Swift’s type inference will see that you’re calling a method that only HalfOpenInterval
has, and so picks that particular overload.
I mention this just because if you want to store the interval as a variable instead of using it in-line, you need to specify:
let interval = 301..<700 as HalfOpenInterval
if interval.contains(integer) {
// etc.
}
William Larson
Updated on June 26, 2022Comments
-
William Larson almost 2 years
I was wondering if there is any smooth way of checking the value of an integer in a range in swift.
I have an integer that can be any number between 0 and 1000
I want to write an if statement for "if the integer is between 300 and 700 - do this and if its any other number - do something else"
I could write:
if integer > 300 { if integer < 700 { //do something else1 } //do something } else { // do something else2 }
But I want to minimize the amount of code to write since "do something else1" and "do something else2" are supposed to be the same
It doesn't seem that you can write :
if 300 < integer < 700 { } else { }
I tried using
if integer == 300..<700 { }
but that didn't work either. Anybody got a suggestion?