scala中的if语句

54 阅读2分钟

开篇实例

案例一 判断是否成年?

object ex {
  def main(args: Array[String]): Unit = {
    print("请输入正方形的边长a:")
    var a = scala.io.StdIn.readInt()
    print("请输入长方形的边长b:")
    var b = scala.io.StdIn.readInt()
    print("请输入长方形的边长c:")
    var c = scala.io.StdIn.readInt()
    if(a*a > b*c) {
      println("SQUARE")
    } else if(a*a < b*c) {
      println("RECTANGLE")
    } else {
      println("SAME")
    }
  }

}

案例二 比较正方形和长方形面积大小

输入一个正方形的边长(a)及一个长方形的长与宽(b、c),然后比较两个图形的面积。如果长方形面积大,输出 “RECTANGLE”;如果正方形面积大,输出 “SQUARE”,如果一样大,输出 “SAME”。

object ex {
  def main(args: Array[String]): Unit = {
    print("请输入正方形的边长a:")
    var a = scala.io.StdIn.readInt()
    print("请输入长方形的边长b:")
    var b = scala.io.StdIn.readInt()
    print("请输入长方形的边长c:")
    var c = scala.io.StdIn.readInt()
    if(a*a > b*c) {
      println("SQUARE")
    } else if(a*a < b*c) {
      println("RECTANGLE")
    } else {
      println("SAME")
    }
  }

}

案例三 输入分数输出等级。

[案例]输入正整数分数,输出对应的等级符号。规则如下:[90,100] 为 A 等;[80,89]  为 B 等;[70,79]  为 C 等;[60,69]  为 D 等;[0, 59]  为 E 等;

object fenshu {
  def main(args: Array[String]): Unit = {
    print("输入正整数分数:")
    var a = scala.io.StdIn.readInt()
    if(a <= 100 && a >= 90) {
      println("A")
    } else if(a <= 89 && a >= 80) {
      println("B")
    } else if(a <= 79 && a >= 70) {
      println("C")
    } else if(a <= 69 && a >= 60) {
      println("D")
    } else {
      println("E")
    }
  }
}

if语句的返回值

val a= if(布尔表达式) {  
   表达式1  
   
} esle{  

   表达式2  
}
object fanhuizhi {
  def main(args: Array[String]): Unit = {
    //if语句的返回值
    val a = if(2 > 1) {
      println("2>1是成立的")
      "ok"
    } else {
      "no"
    }
    
  }
}
object jidain {
  def main(args: Array[String]): Unit = {
    //判断一个数是否为奇,偶数
    val num = 11
    val result = if(num % 2 == 1) {
      "奇数"
    } else {
      "偶数"
    }
  }
}

特殊语法规则

  1. 省略else时默认返回Unit类型(即())116
  2. 可用作三元运算符替代:val max = if(a>b) a else b511
  3. 支持条件守卫(if守卫),常见于for循环中过滤元素

**

深度搜索

1.Scala中if语句与Java有何区别?

2.if语句中的条件守卫如何使用?

3.Scala中if表达式如何自动类型推断?

引用复制翻译解释