Scala(一)数据类型,双等号运算符,For遍历

数据类型(重点)

Java基本类型:char、byte、short、int、long、float、double、boolean

Java引用类型:(对象类型)

  1. Scala中一切数据都是对象,都是Any的子类。
  2. Scala中数据类型分为两大类:数值类型(AnyVal)、引用类(AnyRef),不管是值类型还是引用类型都是对象。
  3. Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)
  4. Scala中的StringOps是对Java中的String增强
  5. Unit:对应Java中的void,用于方法返回值的位置,表示方法没有返回值。Unit是一个数据类型,只有一个对象就是()。Void不是数据类型,只是一个关键字。
  6. Null是一个类型,只有一个对象就是null。它是所有引用类型(AnyRef)的子类。
  7. Nothing,是所有数据类型的子类,主要用在一个函数没有明确返回值时使
    用,因为这样我们可以把抛出的返回值,返回给任何的变量或者函数。

在这里插入图片描述

运算符

Java 和 Scala 中关于==的区别
/**java 引用类型之间用 == 是比较两个引用类型在jvm中的地址
			若想比较引用类型的值则要用equals方法
*/
public static void main(String[] args) {
String s1 = "abc";
String s2 = new String("abc");
System.out.println(s1 == s2); //false
System.out.println(s1.equals(s2)); // true
}

/**
   scala的 == 则对于Java的equals方法,直接比较两个引用类型的值
   如果Scala想要比较两个引用类型的地址可以用 eq()方法
*/
def main(args: Array[String]): Unit = {
val s1 = "abc"
val s2 = new String("abc")
println(s1 == s2) //true
println(s1.eq(s2))//false
}

赋值运算符

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

For遍历

有无边界遍历

  def main(args: Array[String]): Unit = {
   //有边界的遍历 1 ~ 10
    for (i <- 1 to 10 ){
      println( i + "Hello Scala")
    }

    println("======================range")
	//无边界的遍历 1,3,5,7,9
    //Range(首 ,尾,步长)
    for (i <- Range(1 ,10 ,2) ){
      println( i + "Hello Scala")
    }

    // 无边界 1 ~ 9
    println("======================until")
    for (i <- 1 until 10 ){
      println( i + "Hello Scala")
    }
    
  }

循环遍历

   println("======================循环守卫")
    for (i <- 1 to 5){
      if( i != 3){
        println(i)
      }
    }

    println("======================")
    for (i <- 1 to 5 if i != 3){
      println(i)
    }

循环步长

 def main(args: Array[String]): Unit = {

    // by 表示步长
    for (i <- 1 to 10 by 2) {
      println("i= " + i)
    }
    println("================")

    // 反着走
    for (i <- 10 to 1 by -2) {
      println("i= " + i)
    }
    println("================")

    for (i <- 1 to 10 reverse) {
      println("i= " + i)
    }
    println("================")
    //小数走
    for (i <- 1.0 to 10.0 by 0.4) {
      println("i= " + i)
    }
  }

while和 do … while

While 和 do…While 的使用和 Java 语言中用法相同。

while (循环条件) {
//循环体(语句)
//循环变量迭代
}

do{
//循环体(语句)
//循环变量迭代
} while(循环条件)

循环中断

/** Scala 内置控制结构特地去掉了 break 和 continue,是为了更好的适应**函数式编程**,推荐使用函数式的风格解决break和continue的功能,而不是一个关键字。
Scala中使用breakable控制结构来实现 break 和 continue 功能。
*/
import scala.util.control.Breaks
def main(args: Array[String]): Unit = {
	Breaks.breakable(
		for (elem <- 1 to 10) {
			println(elem)
			if (elem == 5) Breaks.break()
		}
	)
println("正常结束循环")
}
//对break进行省略
import scala.util.control.Breaks._
object TestBreak {
	def main(args: Array[String]): Unit = {
		breakable {
			for (elem <- 1 to 10) {
			println(elem)
			if (elem == 5) break
			}
		}
println("正常结束循环")
	}
}

打印出九九乘法表

def main(args: Array[String]): Unit = {
	for (i <- 1 to 9) {
		for (j <- 1 to i) {
			print(j + "*" + i + "=" + (i * j) + "\t")
		}
println()
	}
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值