国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

scala基本語法--for循環和if語句

2019-11-14 09:51:36
字體:
來源:轉載
供稿:網友

上一篇博客我對scala做了最基本的講述吧,主要是我就知道那么多,哈哈,好啦,今天我們看看在任何語言中我們用的最多的兩種語句吧。一猜就中,for和if語句。 當然開始之前我們還是說一下在scala中的變量的定義怎么來。

變量

在scala中如果要定義變量,我們通常有兩種方式,如下:

var count0 = 0 var name0 = "" var num0 = 0.111 val count1 = 0 val name1 = "" val num1 = 0.111

在scala中,var表示的是可變的變量,也就是我可以取做count0+=1的操作,但是count1 += 1就是不行的,編譯的時候就會報錯,切忌這一點,其他的話,scala他會自動識別數據類型,例如count0就是Int類型,name0就是字符串類型,num0就是double類型的。

if語句

if

其實if語句和java的if語句幾乎沒什么差別,要說差別的話,可能就是在scala里邊一句話的結束是不需要“;”的,我能想到的也就是這個了。來看一下例子。

@Test def testIf(): Unit = { val flag = true if (flag) { if…else

其實這也沒什么好說的啦,直接上代碼更直接

@Test def testIfElse(): Unit = { val flag = true if (true) { println("flag::::" + flag) } else { println("flag::::" + flag) } //flag::::true }

if.. else if

@Test def testIfElseAndIfElse(): Unit = { val flag = true if (true) { println("flag::::" + flag) } else if (false) { println("flag::::" + false) } else { println("flag::::" + null) } }

在我們做判斷的時候最常用的就是這三種了,但是我們發現其實這三種和別的語言的判斷語句幾乎是沒什么差別的,要說差別,可能就是沒有哪個”;”了吧。

循環語句

while語句

while的語句特點就是選判斷,然后做處理,例如

@Test def testWhile(): Unit = { var count = 0 var sum = 0 while (count < 10) { sum += count count += 1 } count = 10 while (count < 0) { sum += count count -= 1 } println(sum) }

他們兩個的輸出結果都是45沒什么差別。 當然有了while就必須有doWhile

dowhile語句

@Test def testDoWhile(): Unit ={ var count = 0 var sum = 0 do{ count += 1 sum += count }while(count <10) println(sum) }

當然一樣的是do…while的語句特點就是先處理在判斷,這點要注意,其他的地方暫無處理。哈哈。

for

@Test def testFor(): Unit ={ val numList = List(1,2,3,4,5,6) for (a <- numList){ print(a) } //result:::123456 }

List是scala的集合,這點我們以后會講,這里主要講的是循環,看上去是不是超簡潔。不想java里邊,

for(int i=0; i<numList.size();i++){ system.out.println(a);}

這還是簡介了一部分,接下來還有更好玩的的。

for過濾器

@Test def testForFilter(): Unit ={ val numList = List(1,2,3,4,5,6) for (a <- numList if a>2){ print(a) } //result:::3456 }

代碼如上,我們如果需要做一些處理,就可以再()里邊直接加判斷條件,多過濾條件可以再a>2后邊加分號繼續做篩選,這樣打印出來的信息就是3456,大家可以想想如果這個語句放到java中會事什么樣子。

for yield

當然我們也可以吧上邊篩選的結果存到一個集合里邊,在java里邊大家腦補一下代碼吧,然后看看scala中如何做到的。

@Test def testForYield(): Unit ={ val numList = List(1,2,3,4,5,6) val refVal = for {a <- numList if a>2;if a !=4 } yield a for( a <- refVal){ println( "Value of a: " + a ); } /*Value of a: 3 Value of a: 5 Value of a: 6*/ }

scala中有一個關鍵字yield,他會吧集合里邊的數據存放到一個區域,然后我們就可以取出來。就像操作集合一樣。

foreach

@Test def testForeach(): Unit ={ val numList = List(1,2,3,4,5,6) var content = "" numList.foreach(a=>print(a)) println() numList.foreach({ a => content += a }) println(content) /* 123456 123456*/ }

其實他和for很像,需要注意的是在foreach中如果只有語句代碼,例如print(a),則什么也不需要做,但是如果需要在里邊需要對變量做處理,則需要在each中加入大括號{},其他的一樣啦,大家看看,有沒有比java少一些代碼。

小結

基本語句講完了,其實也沒什么內容,只是感覺他比java少了很多的代碼,所以就吧這些代碼弄出來,其他的倒也沒什么。下一篇我們來看看scala的函數吧。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成都市| 崇左市| 玛纳斯县| 蓬溪县| 辽阳市| 平阴县| 攀枝花市| 筠连县| 利辛县| 上思县| 万安县| 内江市| 平定县| 平阴县| 阿勒泰市| 黔东| 滦平县| 天镇县| 洪湖市| 大石桥市| 大厂| 鹤峰县| 建平县| 兴化市| 赤壁市| 亚东县| 包头市| 汉寿县| 宣汉县| 天门市| 宝清县| 阳城县| 黔东| 昭通市| 无为县| 曲阳县| 全南县| 临泉县| 衡水市| 尉犁县| 都昌县|