idiombook
7/16/2017 - 3:24 PM

[language: Scala, statement: conditional]

[language: Scala, statement: conditional]

sealed trait Weather
case object Sunny extends Weather
case object Cloudy extends Weather
case object Rainy extends Weather

object Main {

  def weather(rainyPercent: Int): Option[Weather] = {
    return if(0 <= rainyPercent && rainyPercent < 30) {
      Some(Sunny)
    } else if(30 <= rainyPercent && rainyPercent < 70) {
      Some(Cloudy)
    } else if(70 <= rainyPercent && rainyPercent <= 100) {
      Some(Rainy)
    } else {
      None
    }
  }

  def weatherResult(weather: Option[Weather]): String = {
    return weather match {
      case Some(w) => w match {
        case Sunny => "晴れ"
        case Cloudy => "曇り"
        case Rainy => "雨"
      }
      case None => "エラー"
    }
  }

  def main(args: Array[String]): Unit = {
    println(weatherResult(weather(29)))
    println(weatherResult(weather(60)))
    println(weatherResult(weather(90)))
    println(weatherResult(weather(200)))
  }
}