Retour booléen avec If-Else en Scala

Suraj P 21 juin 2022
Retour booléen avec If-Else en Scala

Cet article nous apprendra comment renvoyer des valeurs booléennes lorsque vous travaillez avec if-else dans Scala.

Retour Booléen Avec if-else en Scala

Voyons un scénario pour mieux le comprendre.

def check(): Boolean = {
    for ((digit1,digit2,digit3) <- digitsSet){
      if ((1,5,6) == (digit1,digit2,digit3))
        true
      else
        false
    }
  }

val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))

Dans le code ci-dessus, nous essayons de trouver si notre ensemble contient ces trois chiffres, nous attendons donc soit true soit false comme sortie, mais lorsque le code ci-dessus est exécuté, nous obtenons l’erreur suivante.

type mismatch;
 found   : Unit
 required: Boolean
    for ((digit1,digit2,digit3) <- digitsSet){

Le problème est que la fonction doit renvoyer un Booléen au lieu de Unité.

Nous pouvons donc résoudre ce problème de différentes manières.

  1. Utiliser la méthode contains pour trouver un élément dans notre ensemble. Elle renvoie true si l’élément est présent ; sinon renvoie false.

    C’est une manière plus élégante d’écrire le code ci-dessus.

    Exemple de code :

    val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
    println(digitsSet.contains((10,20,30)))
    

    Production:

    true
    
  2. Ajout d’une instruction return avant true et false. C’est le meilleur moyen car il est polyvalent et peut être utilisé dans presque tous les scénarios.

    val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
    
    def check(): Boolean = {
    	val store = for ((digit1,digit2,digit3) <- digitsSet) {
    	  if ((10,20,30) == (digit1,digit2,digit3))
    		return true
    	}
    	false
      }
    
    println(check())
    

    Production:

    true
    
  3. Utilisation de la méthode exists dans Scala.

    val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
    
    println(digitsSet.exists( _ == (1,20,50) ))
    

    Production:

    false
    
Auteur: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub