scala基础学习笔记-变量,循环,函数,数组,集合

本文详细介绍了Scala编程语言的基础知识,包括变量定义与使用、循环与条件语句、函数定义及调用、数组操作等内容,适合初学者快速入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.变量

**
scala中的变量如何定义?
var 变量名=初始值 val 变量名 = 初始值
var 变量名:数据类型=初始值 val变量名:数据类型 = 初始值

package com.legendlee.valuable

object Demo01 {

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

    var num1=100
    val num2=1000
//    printf(num1)
//    println(num1)
//    println(num2)
     num1=num1+10
//     num2=num2+10   val定义的变量不可改变 (常量)

    println(num1)
  }

}

注意:var声明的变量可以修改,val声明的变量不能修改,即常量。

2.循环语句和条件语句

块表达式:可以将变量直接赋给块表达式(相当于一段代码块),其结果作为变量值返回

object Demo01 {
  def main(args: Array[String]): Unit = {
    var a = 10
    var b = 20

    //块表达式
    val result = {
      var num1 = a + b
      var num2 = a - b
      num2
    }
    println(result)
  }
}

if条件表达式:可以将变量直接赋给条件表达式,其结果作为变量值返回

object Demo01 extends App{
  var num=55
  var result=if (num < 60) "不及格" else if (num<80) "一般" else if(num<90) "中上" else "优秀"
  println(result)

}

for循环语句
可以用在什么场景之下?
for<-数组:表示遍历数组元素
yield关键字: 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合

object Demo06 extends App{

  var arrs=Array(1,2,3,4,5,6,7,8)
  var result=for (i<-1 to 5) yield i
  println(result)
}

输出结果为:
在这里插入图片描述

for<-表达式:
for(i <- 1 to 10)表示i从1到10,包含10
for(i<- 1 until 10)表示i从1到9,不包含10

需求:打印出1-10中能被3整除的数

package com.legendlee.forDemo

object Demo01 {
  def main(args: Array[String]): Unit = {
    for (i<- 1 until 10 if i%3==0){
      print(i+"\t")
    }
  }
}

输出结果为:
在这里插入图片描述
for的嵌套循环:
一层控制外层循环,一层控制内层循环
案例:打印出99乘法表
首先,要实现的效果如图所示:
在这里插入图片描述
分析:
需要双层循环控制,一层控制行(i),一层控制列(j),那么,行和列之间的关系是怎样的?

ij
11
22
nn

当行数=列数的时候,换行。
外层循环控制行数,内层循环控制列数

package com.legendlee.forDemo

object Demo04 {
  def main(args: Array[String]): Unit = {
      for (i<- 1 until 10;j <- 1 until 10 if i>=j){//当行数大于等于列数的时候,将结果输出打印
        print(j+"*"+i+"="+(i*j)+"\t")
        if (i==j){//当行数=列数的时候,换行
          println()
        }
      }
  }
}

3.函数

首先,函数是什么就不说了。
我们只需要明白在scala中如何定义和使用函数。
1.函数的定义和使用
def 函数名(参数1:类型 , 参数2:类型 , …) : 返回值类型 ={
函数体代码实现
}
需求:定义一个计算两数之和的函数

package com.legendlee.function

object Demo01 {
  def function1(num1: Int, num2: Int): Int = {
    return num1+num2
  }

  def main(args: Array[String]): Unit = {
    println(function1(10, 20))
  }
}

在这里插入图片描述
当函数体中只有一行代码的时候可以简化下写法:

package com.legendlee.function

object Demo01 {
  def function1(num1: Int, num2: Int): Int = num1+num2

  def main(args: Array[String]): Unit = {
    println(function1(10, 20))
  }
}

2.函数中的参数
默认参数:
定义:在Scala中允许在定义函数时,给函数中的参数设定默认值。在调用函数时如没有给带有默认值的参数传值,则会使用函数的默认参数值
例子:

package com.legendlee.function

object Demo03 {
  def function(name:String,sex:String="女"):Unit={
      println("姓名: "+name+"  性别:"+sex)
  }
  
  def main(args: Array[String]): Unit = {
    function("张三")
  }
}

在这里插入图片描述

带名参数:
是什么?
一般情况下在函数调用时,函数的参数传递是按照函数定义时的参数顺序一个个传递。但是我们也可以通过指定函数参数名,并且不需要按照顺序向函数传递参数。
如何使用?

可变参数:
是什么?
传递的参数是可变的,大小不固定

如何定义?
通过在参数的类型之后放一个星号来设置可变参数(可重复的参数)。

例子:

package com.legendlee.function
object Demo05 {
  def printStrings(strs:String*):Unit={//通过*号定义可变参数
//    for (i <- 0 until strs.length ){
//      println(strs(i))
//    }

    for(str<-strs){
      println(str)
    }
  }
  def main(args: Array[String]): Unit = {
    printStrings("hadoop","Hbase","Hive","Spark")
  }
}

scala中的匿名函数:
是什么?
首先,联想一下,java中的匿名函数是什么?

4.数组

1.在scala中是如何定义数组?
var 数组名:Array[数组类型]=new Array[数组类型](数组大小)
简化写法:
var 数组名=new Array[数组类型](数组大小)
var 数组名=Array(数组内容)

2.数组的分类
可变数组:数组长度和存储的元素可变
不可变数组:数组长度不可变,数组元素可变

3.数组的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值