Scala编程语言day2

位运算符

运算符    功能解释

&       按位与,有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

 

posted @ 2024-01-14 21:44  辞楠  阅读(11)  评论(0)    收藏  举报