Scala基础教程(四):if语句、循环语句、while语句
下面是一個(gè)典型的決策中IF...ELSE結(jié)構(gòu)的一般形式使用在大多數(shù)的編程語(yǔ)言中:
if 語(yǔ)句:
if 語(yǔ)句包含一個(gè)布爾表達(dá)式后跟一個(gè)或多個(gè)語(yǔ)句。
語(yǔ)法:
一個(gè) if 語(yǔ)句的語(yǔ)法:
if(Boolean_expression) { ?? // Statements will execute if the Boolean expression is true }如果布爾表達(dá)式的值為true,那么if語(yǔ)句里面的代碼模塊將被執(zhí)行。如果不是這樣,第一組碼if語(yǔ)句結(jié)束后(右大括號(hào)后)將被執(zhí)行。
示例:
object Test { ?? def main(args: Array[String]) { ????? var x = 10; ? ????? if( x < 20 ){ ???????? println("This is if statement"); ????? } ?? } }這將產(chǎn)生以下輸出結(jié)果:
C:/>scalac Test.scala C:/>scala Test This is if statement ? C:/>if...else語(yǔ)句:
if語(yǔ)句可以跟著一個(gè)可選的else語(yǔ)句,當(dāng) else 塊執(zhí)行時(shí),布爾表達(dá)式條件是假的。
語(yǔ)法:
if...else的語(yǔ)法是:
if(Boolean_expression){ ?? //Executes when the Boolean expression is true }else{ ?? //Executes when the Boolean expression is false }示例:
object Test { ?? def main(args: Array[String]) { ????? var x = 30; ? ????? if( x < 20 ){ ???????? println("This is if statement"); ????? }else{ ???????? println("This is else statement"); ????? } ?? } }這將產(chǎn)生以下結(jié)果:
C:/>scalac Test.scala C:/>scala Test This is else statement ? C:/>if...else if...else語(yǔ)句:
if語(yǔ)句可以跟著一個(gè)可選的else if ... else語(yǔ)句,這是非常有用的使用 if...else if如果測(cè)試各種條件聲明。
當(dāng)使用 if , else if , else 語(yǔ)句有幾點(diǎn)要牢記。
·????????if可以有零或一個(gè)else,它必須跟在else if后面。
·????????一個(gè)if 可以有零到多個(gè)else if,并且它們必須在else之前。
·????????一旦一個(gè)?else if 匹配成功,剩余的else if或else不會(huì)被測(cè)試匹配。
語(yǔ)法:
if...else if...else的語(yǔ)法是:
if(Boolean_expression 1){ ?? //Executes when the Boolean expression 1 is true }else if(Boolean_expression 2){ ?? //Executes when the Boolean expression 2 is true }else if(Boolean_expression 3){ ?? //Executes when the Boolean expression 3 is true }else { ?? //Executes when the none of the above condition is true. }示例:
object Test { ?? def main(args: Array[String]) { ????? var x = 30; ? ????? if( x == 10 ){ ???????? println("Value of X is 10"); ????? }else if( x == 20 ){ ???????? println("Value of X is 20"); ????? }else if( x == 30 ){ ???????? println("Value of X is 30"); ????? }else{ ???? ????println("This is else statement"); ????? } ?? } }這將產(chǎn)生以下結(jié)果:
C:/>scalac Test.scala C:/>scala Test Value of X is 30 ? C:/>if ... else語(yǔ)句嵌套:
它始終是合法的嵌套 if-else 語(yǔ)句,這意味著可以使用一個(gè) if 或 else if 在另一個(gè)if 或else if 語(yǔ)句中。
語(yǔ)法:
語(yǔ)法嵌套 if...else 如下:
if(Boolean_expression 1){ ?? //Executes when the Boolean expression 1 is true ?? if(Boolean_expression 2){ ????? //Executes when the Boolean expression 2 is true ?? } }可以嵌套else if...else在if語(yǔ)句中,反之也可以。
示例:
object Test { ?? def main(args: Array[String]) { ??????? var x = 30; ?????? ?var y = 10; ? ???????? if( x == 30 ){ ??????????? if( y == 10 ){ ??????????? println("X = 30 and Y = 10"); ???????? } ????? } ?? } }這將產(chǎn)生以下結(jié)果:
C:/>scalac Test.scala C:/>scala Test X = 30 and Y = 10 ? C:/>?
?
可能有一種情況,當(dāng)需要多次執(zhí)行代碼的幾個(gè)塊。在一般情況下,語(yǔ)句順序執(zhí)行:在一個(gè)函數(shù)的第一條語(yǔ)句,首先執(zhí)行,然后是第二個(gè)等等。
編程語(yǔ)言提供了各種控制結(jié)構(gòu),允許更多復(fù)雜的執(zhí)行路徑。
循環(huán)語(yǔ)句可以執(zhí)行語(yǔ)句多次或多組,下面是在大多數(shù)編程語(yǔ)言和循環(huán)語(yǔ)句一般如下:
Scala編程語(yǔ)言提供了以下循環(huán)類型的處理循環(huán)需求。點(diǎn)擊以下鏈接查看其詳細(xì)信息。
| 循環(huán)類型 | 描述 |
| while循環(huán) | 重復(fù)聲明語(yǔ)句或一組,當(dāng)給定的條件為真。它測(cè)試條件執(zhí)行循環(huán)體前。 |
| do...while循環(huán) | 像一個(gè)while語(yǔ)句,不同之處在于它測(cè)試條件在循環(huán)體的結(jié)尾 |
| for循環(huán) | 執(zhí)行語(yǔ)句多次序列并簡(jiǎn)寫管理循環(huán)變量的代碼。 |
循環(huán)控制語(yǔ)句:
循環(huán)控制語(yǔ)句改變其正常的順序執(zhí)行。當(dāng)執(zhí)行離開(kāi)一個(gè)范圍,在該范圍內(nèi)創(chuàng)建的所有對(duì)象自動(dòng)被銷毀。但是Scala不支持break或continue語(yǔ)句,想要像Java,但從Scala2.8版本開(kāi)始,有一種方法可以打退出循環(huán)。點(diǎn)擊以下鏈接查看詳細(xì)信息。
| 控制語(yǔ)句 | 描述 |
| break語(yǔ)句 | 終止循環(huán)語(yǔ)句并將執(zhí)行立刻循環(huán)的下面語(yǔ)句。 |
無(wú)限循環(huán):
一個(gè)循環(huán)變成無(wú)限循環(huán),如果條件永遠(yuǎn)不會(huì)為假。如果使用Scala,while循環(huán)是實(shí)現(xiàn)無(wú)限循環(huán)的最佳方式,如下:
object Test { ?? def main(args: Array[String]) { ????? var a = 10; ????? // An infinite loop. ????? while( true ){ ???????? println( "Value of a: " + a ); ????? } ?? } }如果將上面的代碼執(zhí)行,它會(huì)在無(wú)限循環(huán)可以通過(guò)按Ctrl+ C鍵終止。
?
?
while 循環(huán)語(yǔ)句多次執(zhí)行,只要給定的條件為真執(zhí)行目標(biāo)語(yǔ)句。
語(yǔ)法:
Scala while循環(huán)的語(yǔ)法是:
while(condition){ ?? statement(s); }在這里,聲明可以是單個(gè)語(yǔ)句或語(yǔ)句塊。所述條件可以是任何表達(dá)式,真值是任何非零值。當(dāng)條件為true,則循環(huán)迭代。當(dāng)條件為faklse,則程序控制進(jìn)到緊接在循環(huán)之后的行。
流程圖:
在這里,while循環(huán)的關(guān)鍵點(diǎn)是循環(huán)可能不會(huì)永遠(yuǎn)運(yùn)行。當(dāng)條件測(cè)試結(jié)果為false,循環(huán)體將跳過(guò)while循環(huán)后的第一個(gè)語(yǔ)句執(zhí)行。
示例:
object Test { ?? def main(args: Array[String]) { ????? // Local variable declaration: ????? var a = 10; ? ????? // while loop execution ????? while( a < 20 ){ ???????? println( "Value of a: " + a ); ???????? a = a + 1; ????? } ?? } }當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
C:/>scalac Test.scala C:/>scala Test value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19 ? C:/>from: http://www.yiibai.com/scala/scala_basic_syntax.html總結(jié)
以上是生活随笔為你收集整理的Scala基础教程(四):if语句、循环语句、while语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Scala基础教程(三):访问修饰符、运
- 下一篇: Scala基础教程(五):函数、闭包