1. 键盘输入语句
println(“请输入姓名”)
val name = StdIn.readLine()
println(“请输入年龄”)
val age = StdIn.readInt()
println(“请输入薪水”)
val sal = StdIn.readDouble()
printf(“用户的信息为 name=%s age=%d sal=%.2f”, name, age, sal)
2.分支
A.单分支
if(条件表达式){ }
B.双分支
if(条件表达式){ }
else { }
C.多分支
if(条件表达式){ }
else { }
…
else { }
D.嵌套分支
cala中没有switch,而是使用模式匹配来处理 match-case
3.循环
A.循环基本样式
for (i <- 1 to 3) {
println(i + “”)
}
for (i <- 1 until 3) {
println(i + “”)
}
for (i <- 1 to 3 if i != 2) {
println(i + “”)
}
for (i <- 1 to 3) {
if(i != 2){
println(i + “”)
}
}
B.循环赋值
for(i <- 1 to 3; j = 4 - i) {
print(j + " “) // 3,2,1
}
C.循环返回值
val res = for(i <- 1 to 10) yield {
if (i % 2 == 0) {
i
}else {
i + “不是偶数”
}
}
D.使用花括号{}代替小括号() ,{}内可以包括多个表达式
for {
i <- 1 to 3
j = i * 2} {
println(” i= " + i + " j= " + j)
}
for (i <- Range(1, 10, 2)) {
println(“i=” + i)
}
for (i <- 1 to 10 if i % 2 == 1) {
println(“i=” + i)
}
E.while循环
while (i < 10) {
println(“你好,” + i) //循环体
i += 1 //循环变量迭代
}
F.do…while循环
do {
printf(i + "hello\n")
i += 1
} while (i < 10)
G.break
package hello
import util.control.Breaks._
object boke_demo01 {
def main(args: Array[String]): Unit = {
var n = 1
//breakable()函数
//说明
//1. breakable 是一个高阶函数:可以接收函数的函数就是高阶函数(后面详解)
//2. def breakable(op: => Unit) {
// try {
// op
// } catch {
// case ex: BreakControl =>
// if (ex ne breakException) throw ex
// }
// }
// (1) op: => Unit 表示接收的参数是一个没有输入,也没有返回值的函数
// (2) 即可以简单理解可以接收一段代码块
// 3. breakable 对break()抛出的异常做了处理,代码就继续执行
// 4. 当我们传入的是代码块,Scala程序员会将() 改成{}
breakable {
while (n <= 20) {
n += 1
println("n=" + n)
if (n == 18) {
//中断while
//说明
//1. 在Scala中使用函数式的break函数中断循环
//2. def break(): Nothing = { throw breakException }
break()
}
}
}
println("ok2~~~~")
}
}
Scala内置控制结构特地也去掉了continue,是为了更好地适应函数化编程,可以使用if-else或者循环守卫实现continue的效果
object boke_demo01 {
def main(args: Array[String]): Unit = {
//说明
//1. 1 to 10
//2. 循环守卫 if (i != 2 && i != 3) 这个条件为ture,才执行循环体
// 即当i ==2 或者 i == 3时,就跳过
for (i <- 1 to 10 if (i != 2 && i != 3)) {
println("i=" + i)
}
//也可以写成如下的形式
println("============================")
for (i <- 1 to 10) {
if (i != 2 && i != 3) {
println("i=" + i)
}
}
}
}
————Blueicex 2020/2/16 9:00 [email protected]