Scala学习(二)

1.Scala的运算符

1.1 Scala中的equals和==

回顾Java中的运算符
equals和==,equals比较的为值,= = 比较的为地址

String a1=new String("hi");
String a2=new String("hi");
System.out.println(a1==a2);
System.out.println(a1.equals(a2));
输出结果为 false true

//这种情况下字符串会被放入常量池中,所以地址和值都会相等
String a1="hi";
String a2="hi";
System.out.println(a1==a2);
System.out.println(a1.equals(a2));
输出结果为 true true

在Scala中==和equals表示的含义一样,都是比较数值的大小

    var a1=new String("hi");
    var a2=new String("hi");
    println(a1.equals(a2))
    println(a1==a2)

在这里插入图片描述
在Scala中使用eq来比较地址的值

var a1=new String("hi");
var a2=new String("hi");
println(a1.eq(a2))

在这里插入图片描述

在Scala中没有++和–操作符,可以通过+=和-=来实现同样的效果。

2.流程控制

2.1 if

object IFTest
{
  def main(args: Array[String]): Unit = {
    //需求1:输入年龄,如果年龄小于18岁,则输出少年
    //年龄大于等于18且小于等于60,输出中年
    //否则输出老年
    println("请输入年龄:")
    var age:Int=StdIn.readInt()
    if (age <18){
      println("少年")
    }else if(age>=18 && age <=60)
      {
        println("中年")
      }
      else
      {
        println("老年")
      }
  }
}

在这里插入图片描述
在Scala中,if可以有返回值的,返回值的类型是每一个分支条件的共同的父类Any

    var str1: Any = {
      println("请输入年龄:")
      var age: Int = StdIn.readInt()
      if (age < 18) {
        println("少年")
      } else if (age >= 18 && age <= 60) {
        println("中年")
      }
      else if((age >=60 && age <= 120)){
        println("老年")
      }
      else {
        println(666)
      }
    }

2.2 Scala中的三目运算符

    //三目运算符
    var str2:String = if(age<18) "未成年" else "成年"

如果代码块中的代码只有一行,大括号可以省略
在这里插入图片描述

2.3 for循环

    for(i <- 1 to 5)
      {
        println(i)
      }

    for(i <- 1 until 5)
      {
        println(i)
      }

增强for循环:

      for(i <- Array(1,2,3))
        {
          println(i)
        }

循环守卫:

	//遍历偶数集合
    for(i <- 1 to 10 if i%2==0)
      {
        println(i)
      }

循环步长:

    for(i <- 1 to 10 by 1.5)
      {
        println(i)
      }

倒数:

    for(i <- 10 to 1 by -1)
      {
        println(i)
      }

在这里插入图片描述
嵌套循环:

    for(i <- 1 to 4)
      {
        for(j <- 1 to 5)
          {
            println(s"${i}-${j}\t")
          }
      }

在这里插入图片描述

3.循环中断

Scala内置控制结构特地的去掉了break和continue,是为了更好的适应函数式编程,推荐使用函数式编程的风格解决break和continue的功能,而不是一个关键字。scala中使用breakable控制结构来实现break和continue功能。

	//实现程序中断
    import scala.util.control.Breaks._
    breakable(
    for(i <- 1 to 10)
      {
        if(i==5)
          {
            break()
          }
          println(i)
      }
    )

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值