scala中cannot resolve symbol println_scala控制结构:条件表达式与循环

​今天带大家一起过一遍scala语言的基础知识,涵盖if条件表达式、for循环与while循环。

b283f2c4f557ccae657c14bd5e3b4459.png

if条件表达式

Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

新建Test.scala,用于测试我们撰写的代码。

cd /usr/local/scalavim ./mycode/test.scala

请在Test.scala文件中输入以下代码。

object Test {   def main(args: Array[String]) {      var x = 10;      if( x 
保存Test.scala文件,然后,使用下面命令执行代码$ scalac Test.scala $ scala Testx 0) {    println("This is a positive number")} else if (x==0) {    println("This is a zero")} else {    println("This is a negative number")}但是,有一点与Java不同的是,Scala中的if表达式的值可以赋值给变量,比如:val x = 6val a = if (x>0) 1 else -1
f3b4bbc4edd6b59bc8e343ec2e243b56.png

while循环

Scala中也有和Java类似的while循环语句。

var i = 9while (i > 0) {    i -= 1    printf("i is %d",i)}

当然也会有do-while语句,如下:

var i = 0do {    i += 1    println(i)}while (i<5)
c3082319eaf5b864abd85054f3b3c20d.png

for循环

Scala中的for循环语句格式如下:

for (变量

其中,“变量

下面给出一个实例:

for (i 

在上面语句中,i不需要提前进行变量声明,可以在for语句括号中的表达式中直接使用。语句中,“语句执行结束后,会打印出下面结果:

12345

当然,在前面的Range那一节,我们介绍了Range的使用方法,因此,这里可以改变步长,比如设置步长为2,如下所示:

for (i 

这样会得到下面结果:

135

但是,有时候,我们可能不希望打印出所有的结果,我们可能希望过滤出一些满足制定条件的结果,这个时候,就需要使用到称为“守卫(guard)”的表达式。比如,我们只希望输出1到5之中的所有偶数,可以采用以下语句:

for (i 

这样,就只会得到下面的偶数结果:

24

有时候,我们需要对上述过滤后的结果进行进一步的处理,这时,就可以采用yield关键字,对过滤后的结果构建一个集合。比如,我们可以采用以下语句:

scala> for (i 

上面这种带有yield关键字的for循环,被称为“for推导式”。这个概念源自函数式编程,也就是说,通过for循环遍历一个或多个集合,对集合中的元素进行“推导”,从而计算得到新的集合,用于后续的其他处理。

参考链接:

http://dblab.xmu.edu.cn/blog/spark/

https://www.runoob.com/scala/scala-tutorial.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值