Scala基础二——if判断和for循环
1.使用if判断
在实际业务中,经常需要对数据进行过滤处理,使用if判断即可满足这个需求。
Scala中的if判断根据复杂程度可分为if语句、if…else语句、if…else if…else语句、if…else嵌套语句,语法格式如下:
# if语句
if(布尔表达式) { 若布尔表达式为true,则执行该语句块}
# if…else语句
if(布尔表达式) { 若布尔表达式为true,则执行该语句块}
else { 若布尔表达式为false,则执行该语句块}
# if…else if…else语句
if(布尔表达式1) {
若布尔表达式1为true,则执行该语句块
}else if(布尔表达式2) {
若布尔表达式2为true,则执行该语句块
}else if(布尔表达式3) {
若布尔表达式3为true,则执行该语句块
}else {
若以上布尔表达式都为false,则执行该语句块
}
# if…else嵌套语句
if (布尔表达式1) {
if(布尔表达式2) {
若布尔表达式2为true,则执行该语句块
} else if(布尔表达式3) {
若布尔表达式3为true,则执行该语句块
} else {
若布尔表达式2为false且布尔表达式3为false,则执行该语句块
}
} else {
若以上条件都为false,则执行该语句块
}
var x = 10
if(x == 10){
println("x的值为10")
}else if(x == 20){
println("x的值为20")
}else{
println("x的值无法判断")
}
2.使用for循环
循环是指在某种条件下将一段代码按顺序重复执行。
在Scala中有3种循环结构,分别为while循环、do…while循环和for循环。
for循环是相对较为常用的一种循环,for循环语法格式如下:
for(变量 <- 集合) {循环语句}
【例】for循环输出1-10
for(i <- 1 to 10){
println(i)
}
多重循环是常见的for循环,多重循环也称为for循环嵌套,是指在两个或多个区间内循环反复,多个循环区间用分号隔开。Scala可以在for循环中使用if判断过滤一些元素,多个过滤条件用分号隔开。
【例】用for循环嵌套生成元组
var i,j = 0;
for(i <- 1 to 2){
for(j <- 1 to 2){
println(i,j)
}
}
【例】for循环嵌套if判断
for(i <- 1 to 10;if i % 2 == 0;if i > 6){
println(i)
}
for(i <- 1 to 10){
if(i % 2 ==0 && i > 6){
println(i)
}
}
for循环使用yield可以将返回值作为一个变量存储,语法格式如下:
var retVar = for(var x <- List; if condition1; if condition2…) yield x
retVar是变量名,for关键字后的括号用于指明变量和条件,而yield会将每一次循环得到的返回值保存在一个集合中,循环结束后将返回该集合,并赋值给变量retVar。
3.任务实现
本小节还没有介绍使用Scala读取文件的方法,因此要实现广州号码段数量的统计可以先从原始数据中取出部分数据进行测试。
定义函数count(area:String)统计广州号码段数量,首先使用一个数组存储数据,初始化sum为0,再遍历该数组,判断数组中的元素是否包含参数area,若是则sum加1。
def count(area:String) = {
val arr = Array("115036,广东,广州,中国移动,020,510000","115038,1477801,广东,东莞,中国移动,0769,51170","115033,1477796,广东,广州,中国移动,020,510000","115032,1477795,广东,广州,中国移动,202,510000")
var sum = 0
for(a <- arr;if a.contains(area)){
sum = sum 1
}
println(sum)
}
调用并执行count查看广州的数量
count("广州")
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgacika
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01