从0开始学习scala-条件判断与循环

条件判断

这个没得说看代码吧

if(布尔表达式)
{
   // 如果布尔表达式为 true 则执行该语句块
}
if(布尔表达式){
   // 如果布尔表达式为 true 则执行该语句块
}else{
   // 如果布尔表达式为 false 则执行该语句块
}

if(布尔表达式 1){
   // 如果布尔表达式 1 为 true 则执行该语句块
}else if(布尔表达式 2){
   // 如果布尔表达式 2 为 true 则执行该语句块
}else if(布尔表达式 3){
   // 如果布尔表达式 3 为 true 则执行该语句块
}else {
   // 如果以上条件都为 false 执行该语句块
}
object If {
  def main(args: Array[String]): Unit = {
    ifFunction("张三")
    ifElseFunction("李四")
    ifElseIfFunction("")

  }

  def ifFunction(name: String): Unit ={
    if (name == "张三"){
      println("张三")
    }
  }

  def ifElseFunction(name: String): Unit ={
    if (name == "张三"){
      println("张三")
    }else{
      println("不是张三")
    }
  }

  def ifElseIfFunction(name: String): Unit ={
    if (name == "张三"){
      println(name)
    }else if (name == "李四"){
      println("李四")
    }else{
      println("未知")
    }
  }
}

循环

while循环

while(condition)
{
   statement(s);
}
object Circle {
  def main(args: Array[String]): Unit = {
    whileFunction(20)
  }

  def whileFunction(a: Int) = {
    var i = 0
    while (i < a){
      println(i)
      i += 1
    }
  }
}

do…while 循环

do {
   statement(s);
} while( condition );

注意:
条件表达式出现在循环的尾部,所以循环中的 statement(s) 会在条件被测试之前至少执行一次。

object Circle {
  def main(args: Array[String]): Unit = {
    doWhileFunction(0)
  }
  def doWhileFunction(a: Int) = {
    var i = 0
    do{
      println(i)
      i += 1
    } while (i < a)
  }

}

for循环

for( var x <- Range ){
   statement(s);
}

注意:
以上语法中,Range 可以是一个数字区间表示 i to j ,或者 i until j。左箭头 <- 用于为变量 x 赋值。

object Circle {
  def main(args: Array[String]): Unit = {
  	//0 to 20 包含20
    forFunction()
    //0 until 20 不包含20
    forFunction2()
  }

  def forFunction() = {
    for (i <- 0 to 20; if i % 2 == 0) {
      println(i)
    }
  }

  def forFunction2() = {
    for (i <- 0 until 20; if i % 2 == 0) {
      println(i)
    }
  }

}

for 使用 yield

for循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。Scala中for循环是有返回值的。如果被循环的是Map,返回的就是Map,被循环的是List,返回的就是List,以此类推。

  
  def forFunction3() = {
    println(for (i <- 1 to 5) yield i) //Vector(1, 2, 3, 4, 5)
  }

  def forFunction4() = {
    val arr = Array("1", "2", "3")
    (for (item <- arr) yield item).foreach(println(_))// 1 2 3
  }

小练习打印乘法口诀表

object Circle {
  def main(args: Array[String]): Unit = {
    multiTable1()
    //变换下写法
    multiTable2()
  }

  def multiTable1() = {
    for (i <- 1 to 9) {
      for (j <- 1 to i) {
        print(s"$j * $i = ${i * j};\t")
      }
      println()
    }
  }

  def multiTable2() = {
    (for (i <- 1 to 9; j <- 1 to i; s = s"$j * $i = ${i*j};\t" ) yield if (i == j) s"$s \n" else  s).foreach(print)
  }
}
1 * 1 = 1; 
1 * 2 = 2; 2 * 2 = 4; 
1 * 3 = 3; 2 * 3 = 6; 3 * 3 = 9; 
1 * 4 = 4; 2 * 4 = 8; 3 * 4 = 12; 4 * 4 = 16; 
1 * 5 = 5; 2 * 5 = 10; 3 * 5 = 15; 4 * 5 = 20; 5 * 5 = 25; 
1 * 6 = 6; 2 * 6 = 12; 3 * 6 = 18; 4 * 6 = 24; 5 * 6 = 30; 6 * 6 = 36; 
1 * 7 = 7; 2 * 7 = 14; 3 * 7 = 21; 4 * 7 = 28; 5 * 7 = 35; 6 * 7 = 42; 7 * 7 = 49; 
1 * 8 = 8; 2 * 8 = 16; 3 * 8 = 24; 4 * 8 = 32; 5 * 8 = 40; 6 * 8 = 48; 7 * 8 = 56; 8 * 8 = 64; 
1 * 9 = 9; 2 * 9 = 18; 3 * 9 = 27; 4 * 9 = 36; 5 * 9 = 45; 6 * 9 = 54; 7 * 9 = 63; 8 * 9 = 72; 9 * 9 = 81; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值