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.区间迭代:
- 全部迭代
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
- 迭代不包含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(默认使用无参构造函数)
以上纯属个人见解,如有问题请联系本人!