# Comparison operators (==, !=, >, <, >=, <=)

Comparison operators return a `Bool` to indicate whether or not a given statement is true. They are used heavily in if statements.

### Equal to `==`

``````print(5 + 5 == 10) // true
print(1 + 1 == 11) // false
``````

### Not equal to `!=`

``````print(5 + 5 != 10) // false
print(1 + 1 != 11) // true
``````

### Greater than `>`

``````print(5 > 10) // false
print(10 > 2) // true
``````

### Less than `<`

``````print(5 < 10) // true
print(10 < 2) // false
``````

### Greater than or equal to `>=`

``````print(10 >= 10) // true
print(15 >= 16) // false
print(18 >= 12) // true
``````

### Less than or equal to `<=`

``````print(10 <= 10) // true
print(15 <= 16) // true
print(18 <= 12) // false
``````

### Comparing equality of two struct instances

The `==` and `!=` may also be used to check to see if two struct instances have the same values. For this, the struct must conform to `Equatable`.

``````struct Player: Equatable {
var name: String
var score: Int
}

let player1 = Player(name: "Tomoko", score: 100)
let player2 = Player(name: "Tomoko", score: 100)
let player3 = Player(name: "Isabella", score: 350)
let player4 = player1

print(player1 == player2) // true
print(player1 == player3) // false
print(player1 == player4) // true

print(player1 != player2) // false
print(player1 != player3) // true
print(player1 != player4) // false
``````

### Comparing equality of two class instances

The `==` and `!=` may also be used to check to see if two class instances have the same values. For this, the class must also conform to `Equatable`, which involves more work than if it was a struct.

``````class Player: Equatable {
var name: String
var score: Int

init(name: String, score: Int) {
self.name = name
self.score = score
}

static func == (lhs: Player, rhs: Player) -> Bool {
return lhs.name == rhs.name && lhs.score == rhs.score
}
}

let player1 = Player(name: "Tomoko", score: 100)
let player2 = Player(name: "Tomoko", score: 100)
let player3 = Player(name: "Isabella", score: 350)
let player4 = player1

print(player1 == player2) // true
print(player1 == player3) // false
print(player1 == player4) // true

print(player1 != player2) // false
print(player1 != player3) // true
print(player1 != player4) // false
``````

Note: While `==` and `!=` compare class instance equality, `===` and `!==` compare identity, which is a similar, but different concept.