位运算符
运算符 功能解释
& 按位与,有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