Как я могу сделать "если ... еще" внутри для понимания?

Я задаю очень простой вопрос, который недавно меня смутил. Я хочу написать выражение Scala For для выполнения чего-то вроде следующего:

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

Проблема в том, что в нескольких генераторах For expression я не знаю, где я могу поместить каждый для тела выражения.

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

Как я могу переписать код в стиле Scala?

18
задан AmigoNico 13 November 2012 в 07:48
поделиться