首页 > 编程语言 >Scala编程语言day2

Scala编程语言day2

时间:2024-01-14 21:56:28浏览次数:29  
标签:val 编程语言 Scala Int day2 else 参数 println def

位运算符

运算符    功能解释

&       按位与,有0则0,都为1则1

|       按位或,有1则1,都为0则0

^       按位异或,相同为0,不同为1

~       按位取反,0变1,1变0

<<       按位左移,左移一位,相当于该数乘2

>>      按位右移,右移一位,相当于该数除2

第四章流程控制结构

分类:顺序结构、选择(分支)结构、循环结构

顺序结构:程序是按照从上至下,从左至右的顺序,依次执行的

选择(分支)结构

单分支

val math=60
if(math>=60){
    println("成绩合格")
}

双分支结构

var math=45
if(math>=60){
    println("成绩合格")
}else
    println("成绩不合格")

 多分支结构

if(math>=90&&math<=100){
     println("优秀")
}else if (math<90&&math>=70){
     println("良好")
}else if(math<70&&math>=60){
     println("合格")
}else
     println("不及格")

嵌套分支

val a=10
val b=20
val c=30
var max=0
if(a>=b){
    max=if(a>=c) a else c
}else{
    max=if(b>=c) b else c
}

块表达式

Scala中,使用{}表示一个块表达式;和if表达式一样,块表达式也是有值的;至九十最后一个表达式的值

val a={
    println("1+1")
    1+1
}
println("a:"+a)

循环结构

for循环

val num=1 to 10
for(i <- num){
    println("hello Scala" + "第"+i+"次")
}

for循环嵌套

for(i <- 1 to 3;j <- 1 to 5){
    if(j==5)
      println() else
      print("*") }

for循环之守卫

for表达式中,可以添加if判断语句,这个if判断语句称之为守卫

for(i <- 1 to 10 if i%3==0)
    println(i)

for循环之推导式

Scala中for循环是有返回值的,在for循环中,可以用yield表达式构建出一个集合,把使用yield的for表达式称之为推导式

val i = for( i <- 1 to 10) yield i*10
println(i)

while循环

val i =0
while(i <= 10)
{
    print(i + " ")
    i=i+1
}

do while 循环

val i=1
do{
    println(i)
    i=i+1
}while(i<=10)

break和continue的用法

break用法

import scala.util.control.Breaks._
breakable{
    for(i <- 1 to 10){
        if(i==5)
            break()
        else
            println(i)
    }
}

continue用法

import scala.util.control.Breaks._
for(i <- 1 to 10){
        breakable{
            if(i%3==0)
                break()
            else
                println(i)
        }
} 

第五章方法和函数

方法

语法格式

def 方法名(参数名: 参数类型,参数名:参数类型):  [return type]={

  //方法体

}

省略版:def getMax(a:Int,b:Int) = if(a>b) a else b

返回值的类型推断

Scala定义方法可以省略返回值的数据类型,由Scala自动推断返回值类型    !!!!!定义递归方法,不能省略返回值类型

 def factory(a:Int): Int = if(a==1) return 1 else a*factory(a-1)
 var result=factory(10)
println(result)

惰性方法

当记录返回值的变量被声明为lazy时,方法的执行将被推迟,直到我们首次使用该值时,方法才会执行,像这样的方法,就叫惰性方法      !!!惰性赋值

 方法参数

默认参数: def getSum(a :Int = 10,b:Int = 20)=a+b  getSum结果为30

带命参数: def getSum(a :Int = 10,b:Int = 20)=a+b  getSum(1)结果21

      def getSum(a :Int = 10,b:Int = 20)=a+b  getSum(b=1)结果11

变长参数

如果方法的参数是不固定的,可以将该方法的参数定义为变长参数

语法格式  def  方法名(参数名:参数类型*):返回值类型={}      !!!一个方法有且只能有一个变长参数,并且变长参数要放到参数列表的最后边

def getSum(a:Int*)=a.sum
println(getSum(1,2,3,4))

方法调用方式

后缀调用法:对象名.方法名(参数)    Math.abs(-1)

中缀调用法:对象名 方法名 参数     Math abs -1    !!!在Scala中所有的操作符都是方法

花括号调用法

 Math abs{
     println("取绝对值")
     -30
}

无括号调用法

 def printSum(){
    println("Sum")
}
printSum

 

标签:val,编程语言,Scala,Int,day2,else,参数,println,def
From: https://www.cnblogs.com/cinan/p/17964084

相关文章

  • 学习Java笔记 - Day2
    Java特性优势简单性:基于C,纯净版的C++面向对象:一切皆对象可移植性:Writeonce,runanywhere-跨平台高性能:及时编译,效率分布式:为网络分布式环境设计,可处理TCP/IP协议,通过URL,访问网络资源,相当于本地资源,简单。支持远程的方法调用。动态性:反射机制,有了动态性。多线程:看视频,......
  • day2
    怎么老是算错,分母的分数放出来要倒换的呀,还要那个正负号,认真点5种算secx不定积分的方法,每种都很巧妙,每种都值得牢牢记住如果三角函数关系不清楚的话可以用中学那种画直角三角形的方法中值定理:5+3+2用定积分定义算极限那个是n分之1不是n分之k!!!,每个横坐标都是无穷小量,别糊涂了定......
  • WSL2下Ubuntu中的Scala环境安装
    sudosed-i's/http:\/\/archive.ubuntu.com/https:\/\/mirrors.ustc.edu.cn/g'/etc/apt/sources.listsudoaptupdate&&sudoaptupgrade-ysudoaptinstallopenjdk-17-jdk-yvi~/.profileexportJAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd6......
  • Scala编程语言day1
    一、Scala概述Scala是一种运行在JVM上的函数式的面向对象语言,它集成了面向对象编程和面向函数式编程的各种特性,以及更高层的并发模型Scala的语言特点Scala是兼容的:兼容Java,可以访问庞大的Java类库Scala是精简的:Scala表达能力强,开发速度快Scala是高级的:Scala可以让你的程序保......
  • 学了这么多编程语言,你学会了几种“Hello world”呢?
    学了这么多编程语言,你学会了几种“Helloworld”呢?王菜鸟于2020-05-0921:53:48发布阅读量2.1k收藏2点赞数15分类专栏:随笔记录文章标签:编程语言版权随笔记录专栏收录该内容31篇文章2订阅订阅专栏你知道多少种编程语言?本文整理了30种编程语言的HelloWorld程序,有些......
  • 算法学习Day26组合总和、分割回文串
    Day26组合总和、分割回文串ByHQWQF2024/01/13笔记39.组合总和给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集......
  • 【flink番外篇】9、Flink Table API 支持的操作示例(8)- 时态表的join(scala版本)
    文章目录Flink系列文章一、maven依赖二、示例:时态表的join(scala版本)1)、统计需求对应的SQL2)、Withoutconnnector实现代码3)、WithCSVConnector实现代码本文给以scala的语言给出来TableAPI针对时态表的join操作。本文除了maven依赖外,没有其他依赖。本文需要有kafka的运行环境......
  • 32-Scala-函数式编程
    1.偏函数1.1案例引入给你一个集合List(1,2,3,4,"abc"),请完成如下要求:将集合中的所有数字+1,并返回一个新的集合;要求忽略掉非数字的元素,即返回的新的集合形式为(2,3,4,5)。objectPrePartialFuncTest{defmain(args:Array[String]):Unit={//=====......
  • 33-Scala-Akka
    1.Akka概述Akka是Java虚拟机JVM平台上构建高并发、分布式和容错应用的工具包和运行时,你可以理解成Akka是编写并发程序的框架。Akka用Scala语言写成,同时提供了Scala和Java的开发接口。Akka基于Actor模型,它提供了一种轻量级的并发抽象,称为Actor,以及处理并发和......
  • 29-Scala-面向对象
    1.面向对象编程基础1.1定义类基本语法:[修饰符]class类名{//code}Scala语法中,类并不声明为public,所有这些类都具有公有可见性(即默认就是public)一个Scala源文件可以包含多个类1.2成员变量属性的定义语法同变量:[访问修饰符]var属性名称[:类型]=属性值......