Scala:if判断、循环以及循环中断

1.声明

当前内容主要用于本人学习和复习,当前内容主要为if判断、循环、和循环中断

注意当前的scala中没有提供continue和break

当前学习来源:菜鸟教程

2.if判断

package com.hy.scala.start.ifelse
/**
 * @description 当前内容主要用于测试if..else语句
 * @author hy
 * @date 2020-06-24
 */
object IfTest {
  private var num: Int = 100;

  def ifFunc(bool: Boolean) {
    if (bool) {
      println("输入的是:true");
    } else {
      println("输入的是:false");
    }
  }

  def result(num: Int): String = {
    if (num > 90) {
      return "优秀";
    } else if (num > 60) {
      return "良";
    } else {
      return "差";
    }
  }

  def main(args: Array[String]): Unit = {
    ifFunc(true);
    println(result(this.num)); // 这个main函数是实例方法,所以可以调用
  }
}

结果:

输入的是:true
优秀

3.for循环

定义一个int类型的数组:

var arrays: Array[Int] = Array[Int](1, 2, 3, 4, 5, 6, 7, 8, 9);

1.普通迭代操作:for(变量<-集合){其他操作}

// 直接迭代数据
  def forEach(arrs: Array[Int]) {
    for (x <- arrs) {
      print(x + "\t");// 这里可以替换为其他操作
    }
  }

2.区间迭代:

  1. 全部迭代for(x<- startNum to endNum){操作},这个迭代包括startNum和endNum
 def range(startNum: Int, endNum: Int) {
    for (x <- startNum to endNum) {
      print(x + " ");
    }
  }
  // main函数中执行
  range(0, 10); //迭代10
  1. 迭代不包含endNum:for(x<- startNum until endNum){操作}
 def range(startNum: Int, endNum: Int) {
    for (x <- startNum until endNum) {
      print(x + " ");
    }
  }
  // main函数中执行
  range(0, 10); //迭代不包含10

3.双重迭代(实现双重for循环迭代)

for(x<-1 to 5;y<- 2 to 6){
	println("x="+x+",y="+y);
}

等价于:

for (x <- 1 to 5) {
  for (y <- 2 to 6) {
   println("x=" + x + ",y=" + y);
  }
}

4.迭代时判断

for (x <- 1 to 10 if x % 2 == 0; if x < 8) {
  println(x);
}

相当于:

for (x <- 1 to 10) {
  if (x % 2 == 0 && x < 8)
    println(x);
}

5.将迭代的数据放入到集合中

var result = for { x <- arrays if x % 2 == 0 } yield x;

当前的操作中就是迭代arrays,并获取2的倍数值且放入集合中返回

4.while循环和do…while循环

1.while循环使用方式和java一样

 // while循环
def whileFun() {
  var sum: Int = 0;
  var i: Int = 0;
  while (i < 10) {
    i += 1;
    sum += i;
  }
  println("sum=" + sum);
}

2.do…while循环方式

 // 测试do...while
def doWhile() {
  var sum: Int = 0;
  var i: Int = 0;
  do {
    i += 1;
    sum += i;
    // 不存在break和return
  } while (i < 10);

  println("sum=" + sum);
}

5.循环中使用中断

只有通过Break这个类来实现循环中断

package com.hy.scala.start.loop

import scala.util.control._

/**
 * @description 当前内容主要为测试break函数
 * @author hy
 * @date 2020-06-24
 */
object BreakLoopTest {
  var arrays = Array(1, 2, 3, 4, 5, 6);
  var loop = new Breaks;

  def breakLoop() {
    var sum: Int = 0;
    // 循环的中断需要借助当前的Break这个类来实现,通过breakable方法方式操作循环才能使用break方法
    loop.breakable(
      for (x <- arrays) {
        if (x == 3) {
          loop.break();
        }
        sum += x;
      }
     );
    print("sum=" + sum);
  }
  def main(args: Array[String]): Unit = {
    breakLoop();
  }
}

其中注意的是:循环中断必须放在loop.breakable()这个方法中,必须在该方法中使用loop.break()方法,如果不是在breakable方法中使用那么报错!

6.总结

1.scala中的if语句以及while和dowhile语句和java一致

2.scala中的for循环的操作方式有很多

3.scala中的循环中断只能使用Break这个类来通过breakable和break来实现

4.创建对象实例使用new Break(默认使用无参构造函数)

以上纯属个人见解,如有问题请联系本人!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值