• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Scala基础二——if判断和for循环

武飞扬头像
Z_Data
帮助1

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
系列文章
更多 icon
同类精品
更多 icon
继续加载