Comment puis-je faire 'if..else' dans une for-comprehension?

Je pose une question très simple qui m'ont troublé récemment.
Je veux écrire un Scala Pour expression pour faire quelque chose comme ce qui suit:

for (i <- expr1) {
  if (i.method) {
    for (j <- i) {
      if (j.method) {
        doSomething()
      } else {
        doSomethingElseA()
      }
    }
  } else {
    doSomethingElseB()
  }
}

Le problème est que, dans les multiples générateurs Pour l'expression, je ne sais pas où je peux mettre chacun à l'expression du corps.

for {i <- expr1
  if(i.method) //where can I write the else logic ?
  j <- i 
  if (j.method)
} doSomething()

Comment puis-je repasser le code de la Scala de Style?

source d'informationauteur Sawyer