第三章 scala迴圈

2021-08-20 03:14:13 字數 1978 閱讀 2600

1 三個基本的迴圈表示式

scala> 1 to 10

res0: scala.collection.immutable.range.inclusive = range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> 1.to(10)

res1: scala.collection.immutable.range.inclusive = range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> 1 until 10

res2: scala.collection.immutable.range = range(1, 2, 3, 4, 5, 6, 7, 8, 9)

2 for迴圈簡單應用

scala> for(i<-1 to 10)

1       2       3       4       5       6       7       8       9       10

定義陣列,並輸出

scala> val arr=array("one",34.5,"three")

arr: array[any] = array(one, 34.5, three)

scala> for(i<-arr)

one 34.5 three 

3 巢狀尋迴圈

if後的表示式為推導

scala> for(i<-1 to 3;j<-7 to 9 if(i!=j)) print("i="+i+",j="+j+"\t")

i=1,j=7 i=1,j=8 i=1,j=9 i=2,j=7 i=2,j=8 i=2,j=9 i=3,j=7 i=3,j=8 i=3,j=9

4 yield將值封裝到集合中

scala> val res=for(i<-1 until 10) yield i

res: scala.collection.immutable.indexedseq[int] = vector(1, 2, 3, 4, 5, 6, 7, 8, 9)

scala> println(res)

vector(1, 2, 3, 4, 5, 6, 7, 8, 9)

5 scala中定義方法

scala> def mod(x:int,y:int):int=x+y

mod: (x: int, y: int)int

呼叫方法

scala> val res=mod(8,99)

res: int = 107

6 scala中定義函式

scala> val res=(x:int,y:int)=>x+y

res: (int, int) => int =

呼叫函式

scala> val z=res(9,6)

z: int = 15

7 將函式當作方法的引數進行傳遞

定義方法mod2,並傳遞乙個函式f作為方法的引數

scala> def mod2(f:(int,int)=>int)=f(3,4)

mod2: (f: (int, int) => int)int

定義乙個有兩個引數的函式

scala> val fun=(x:int,y:int)=>x*y

fun: (int, int) => int =

呼叫方法mod2並把定義好的函式fun作為引數進行傳遞,返回結果

scala> val x=mod2(fun)

x: int = 12

8 將方法轉換成函式

定義方法

scala> def mod(x:int,y:int):int=x-y

mod: (x: int, y: int)int

注意:將方法mod轉換成函式時,方法名後與_之間有乙個空格

scala> val fun=mod _

fun: (int, int) => int =

呼叫轉換後的函式

scala> fun(9,86)

res1: int = -77

第三章 while迴圈

1 while迴圈就是讓執行的 按照指定的次數重複執行。2 while語句以及縮排部分是乙個完整的 塊。3 運算子 4 在編寫程式時,除特殊要求,否則迴圈的計數從0開始。5 eg 計算 0 100 之間所有數字的累計求和結果 result 0 i 0 while i 100 print i resu...

scala學習第三章陣列相關操作

val b new arraybuffer int 或者 new arraybuffer int b 1 arraybuffer 1 用 在尾端新增元素 b 1,2,3,5 arraybuffer 1,1,2,3,5 在尾端新增多個元素 b array 1,2,3 arraybuffer 1,1,2...

第三章 從迴圈到網路

include include stdlib.h define n 64 define tpb 32 每個執行緒塊包含32個執行緒 device float scale int i,int n device float distance float x1,float x2 global void d...