好程序员大数据学习路线分享Scala分支和循环
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,好程序员大数据学习路线分享Scala分支和循环3.3. 条件表达式表达式:一个具有执行结果的代码块。结果是具体的值或者()表达式的思考方式:以表达式为中心的编程思想1.表达式和语句的区别:表达式有返回
千家信息网最后更新 2025年02月04日好程序员大数据学习路线分享Scala分支和循环
好程序员大数据学习路线分享Scala分支和循环
3.3. 条件表达式
表达式:一个具有执行结果的代码块。结果是具体的值或者()
表达式的思考方式:以表达式为中心的编程思想
1.表达式和语句的区别:表达式有返回值,语句被执行。表达式一般是一个语句块,执行后,返回一个值
2.不使用return语句,最后一个表达式即返回值
if/else表达式有值,这个值就是跟在if或者else之后的表达式的值
object ConditionDemo {
def main(args: Array[String]){
var x = 1
//将if/else表达式值赋给变量y
val y = if (x > 0 ) 1 else -1
println(y)
//支持混合型表达式//返回类型是Anyval z = if(x>0) "success" else -1println(z)//如果缺失else,相当于if(x>2) 1 else ()//返回类型是AnyVal//如果进行类型判断和转换,可以使用://var b = if(m.isInstanceOf[Int]) m.asInstanceOf[Int] else 0val m = if(x>2) 1println(m)//在scala中,每个表达式都有值,scala中有个unit类,写作(),相当于Java中的 voidval n = if(x>2) 1 else ()println(n)//if 嵌套val k= if(x<0) 0 else if (x>=1) 1 else -1println(k)
}
执行结果:
Scala的的条件表达式比较简洁,例如:
注意:1,每个表达式都有一个类型
2,条件表达式有值
3,混合型表达式,结果是Any或者AnyVal
4,scala没有switch语句
3.4. 块表达式
object BlockExpressionDemo {
def main(args: Array[String]){
var x = 0//在scala中,{}中可以包含一系列表达式,块中最后一个表达式的值就是块的值val res = { if (x < 0) { -1 } else if (x >= 1) { 1 } else { "error" }} println(res) val x0 = 1 val y0 = 1 val x1 = 2 val y1 = 2 val distance = { val dx = x1 - x0 val dy = y1 - y0 Math.sqrt(dx*dx+dy*dy) } println(distance)//块语句,最后一句是赋值语句,值是unit类型的 var res2 = { val dx = x1 - x0 val dy = y1 - y0 val res = Math.sqrt(dx*dx+dy*dy) }println(res2)
}
}
执行结果:
注意:
1,块表达式的值是最后一个表达式的值
2,赋值语句的值是unit类型的,
3.5. 循环
在scala中有for循环和while循环,用for循环比较多
for循环语法结构:for (i <- 表达式/数组/集合)
while (条件语句){表达式}
do{ 表达式}while()
object ForDemo
def main(args: Array[String]){
//每次循环将区间的一个值赋给i
for( i <- 1 to 10)
println(i)
//for i <-数组val arr = Array("a", "b", "c")for( i <- arr) println(i)val s = "hello"for(i <- 0 until s.length){ println(s(i))}// 或者// for(c <- s)println(c)// 或者// for(i <- 0 until s.length){// println(s.charAt(i))//使用了隐式转换,把字符串变成一个ArrayCharSequence // }//高级for循环for(i <- 1 to 3 ; j<- 1 to 3 if i != j) print((10*i + j) + "") println()//for推导式,如果for循环的循环体以yeild开始,则该循环会构建出一个集合或者数组,每次迭代生成其中的一个值。val v= for ( i <- 1 to 10 )yield i*10 println (v)//也可以借助函数由初始数组生成一个新的数组 val arr1 = Array(1,2,3,4,5,6,7,8,9) val arr2 = arr.map(_*10) val arr3 = arr.filter(_%2==0)
}
}
表达式
循环
语句
类型
数组
结果
条件
就是
混合型
混合
生成
分支
数据
程序
程序员
路线
学习
简洁
高级
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
魔兽世界 刀塔服务器
网络安全设计原理
幼儿园网络安全整改报告
徐州口碑好的网络技术服务电话
sql数据库修改多个字段
太空互联网泰豪科技
软件开发外包保密协议
数据库插入信息格式
环境安全网络安全手抄报
怎么删除数据库服务
安徽营销网络技术服务费
a哥装服务器
采集网页查询表单数据库
西宁网络安全保障攻防技术
单核服务器承载量
深圳网络技术开发销售价格
我局开展网络安全应急演练
西村垃圾数据库
闵行区自动化软件开发口碑推荐
广州停车场智能软件开发方案
数据库连接字符串要素
android系统数据库
静安区技术软件开发大概费用
软件开发sow验收标准
安苏服务器属于正式服还是怀旧服
葫芦岛自习室软件开发
软件开发在三线城市可以吗
济南市网络安全知识答题
小学生网络安全从我做起稿件
网约车派单软件开发