1 IF...ELSE 語(yǔ)句
Scala IF...ELSE 語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True或者False)來(lái)決定執(zhí)行的代碼塊葛菇。
1.1 if 語(yǔ)句
if 語(yǔ)句有布爾表達(dá)式及之后的語(yǔ)句塊組成甘磨。
if(布爾表達(dá)式)
{
// 如果布爾表達(dá)式為 true 則執(zhí)行該語(yǔ)句塊
}
如果布爾表達(dá)式為 true 則執(zhí)行大括號(hào)內(nèi)的語(yǔ)句塊,否則跳過(guò)大括號(hào)內(nèi)的語(yǔ)句塊眯停,執(zhí)行大括號(hào)之后的語(yǔ)句塊济舆。
object Test {
def main(args: Array[String]) {
var x = 10;
if( x < 20 ){
println("x < 20");
}
}
}
執(zhí)行以上代碼,輸出結(jié)果為:
x < 20
1.2 if...else 語(yǔ)句
if 語(yǔ)句后可以緊跟 else 語(yǔ)句莺债,else 內(nèi)的語(yǔ)句塊可以在布爾表達(dá)式為 false 的時(shí)候執(zhí)行滋觉。
var myVar = 10;
val myVal = "Hello, Scala!";
if...else 的語(yǔ)法格式如下:
if(布爾表達(dá)式){
// 如果布爾表達(dá)式為 true 則執(zhí)行該語(yǔ)句塊
}else{
// 如果布爾表達(dá)式為 false 則執(zhí)行該語(yǔ)句塊
}
示例:
object Test {
def main(args: Array[String]) {
var x = 30;
if( x < 20 ){
println("x 小于 20");
}else{
println("x 大于等于 20");
}
}
}
執(zhí)行以上代碼签夭,輸出結(jié)果為:
x 大于等于 20
1.3 if...else if...else 語(yǔ)句
if 語(yǔ)句后可以緊跟 else if...else 語(yǔ)句,在多個(gè)條件判斷語(yǔ)句的情況下很有用椎侠。
語(yǔ)法
if...else if...else 語(yǔ)法格式如下:
if(布爾表達(dá)式 1){
// 如果布爾表達(dá)式 1 為 true 則執(zhí)行該語(yǔ)句塊
}else if(布爾表達(dá)式 2){
// 如果布爾表達(dá)式 2 為 true 則執(zhí)行該語(yǔ)句塊
}else if(布爾表達(dá)式 3){
// 如果布爾表達(dá)式 3 為 true 則執(zhí)行該語(yǔ)句塊
}else {
// 如果以上條件都為 false 執(zhí)行該語(yǔ)句塊
}
示例:
object Test {
def main(args: Array[String]) {
var x = 30;
if( x == 10 ){
println("X 的值為 10");
}else if( x == 20 ){
println("X 的值為 20");
}else if( x == 30 ){
println("X 的值為 30");
}else{
println("無(wú)法判斷 X 的值");
}
}
}
執(zhí)行以上代碼第租,輸出結(jié)果為:
X 的值為 30
1.4 if...else 嵌套語(yǔ)句
if...else 嵌套語(yǔ)句可以實(shí)現(xiàn)在 if 語(yǔ)句內(nèi)嵌入一個(gè)或多個(gè) if 語(yǔ)句。
語(yǔ)法
if...else 嵌套語(yǔ)句語(yǔ)法格式如下:
示例:
if(布爾表達(dá)式 1){
// 如果布爾表達(dá)式 1 為 true 則執(zhí)行該語(yǔ)句塊
if(布爾表達(dá)式 2){
// 如果布爾表達(dá)式 2 為 true 則執(zhí)行該語(yǔ)句塊
}
}
示例:
object Test {
def main(args: Array[String]) {
var x = 30;
var y = 10;
if( x == 30 ){
if( y == 10 ){
println("X = 30 , Y = 10");
}
}
}
}
執(zhí)行以上代碼我纪,輸出結(jié)果為:
X = 30 , Y = 10
1.5 類(lèi)比Java的三元表達(dá)式if...else 語(yǔ)句
Java中的三元表達(dá)式是一種簡(jiǎn)潔的條件語(yǔ)句慎宾,它由三部分組成:條件表達(dá)式、真值表達(dá)式和假值表達(dá)式浅悉。它的語(yǔ)法格式如下:
實(shí)例:
(條件表達(dá)式) ? (真值表達(dá)式) : (假值表達(dá)式);
示例:
int a = 10;
int b = 20;
int max = (a > b) ? a : b;
System.out.println("較大的數(shù)是:" + max);
scala類(lèi)比三元表達(dá)式
val a = 10;
val b = 20;
val max = if(a > b) a else b
2 Scala 循環(huán)
2.1 while 循環(huán)
只要給定的條件為 true趟据,Scala 語(yǔ)言中的 while 循環(huán)語(yǔ)句會(huì)重復(fù)執(zhí)行循環(huán)體內(nèi)的代碼塊。
語(yǔ)法
Scala 語(yǔ)言中 while 循環(huán)的語(yǔ)法:
while(condition)
{
statement(s);
}
示例:
object Test {
def main(args: Array[String]) {
// 局部變量
var a = 10;
// while 循環(huán)執(zhí)行
while( a < 20 ){
println( "Value of a: " + a );
a = a + 1;
}
}
}
2.1 do...while 循環(huán)
不像 while 循環(huán)在循環(huán)頭部測(cè)試循環(huán)條件, Scala 語(yǔ)言中术健,do...while 循環(huán)是在循環(huán)的尾部檢查它的條件
do...while 循環(huán)與 while 循環(huán)類(lèi)似汹碱,但是 do...while 循環(huán)會(huì)確保至少執(zhí)行一次循環(huán)。
語(yǔ)法
Scala 語(yǔ)言中 while 循環(huán)的語(yǔ)法:
do {
statement(s);
} while( condition );
示例:
object Test {
def main(args: Array[String]) {
// 局部變量
var a = 10;
// do 循環(huán)
do{
println( "Value of a: " + a );
a = a + 1;
}while( a < 20 )
}
}
2.3 for循環(huán)
for 循環(huán)允許您編寫(xiě)一個(gè)執(zhí)行指定次數(shù)的循環(huán)控制結(jié)構(gòu)荞估。
語(yǔ)法
Scala 語(yǔ)言中 for 循環(huán)的語(yǔ)法:
for( var x <- Range ){
statement(s);
}
以上語(yǔ)法中咳促,Range 可以是一個(gè)數(shù)字區(qū)間表示 i to j ,或者 i until j泼舱。左箭頭 <- 用于為變量 x 賦值等缀。
實(shí)例
- 以下是一個(gè)使用了 i to j 語(yǔ)法(包含 j)的實(shí)例:
object Test {
def main(args: Array[String]) {
var a = 0;
// for 循環(huán)
for( a <- 1 to 10){
println( "Value of a: " + a );
}
}
}
- 以下是一個(gè)使用了 i until j 語(yǔ)法(不包含 j)的實(shí)例:
object Test {
def main(args: Array[String]) {
var a = 0;
// for 循環(huán)
for( a <- 1 until 10){
println( "Value of a: " + a );
}
}
}
- 在 for 循環(huán) 中你可以使用分號(hào) (;) 來(lái)設(shè)置多個(gè)區(qū)間枷莉,它將迭代給定區(qū)間所有的可能值娇昙。以下實(shí)例演示了兩個(gè)區(qū)間的循環(huán)實(shí)例:
object Test {
def main(args: Array[String]) {
var a = 0;
var b = 0;
// for 循環(huán)
for( a <- 1 to 3; b <- 1 to 3){
println( "Value of a: " + a );
println( "Value of b: " + b );
}
}
}
- for 循環(huán)集合
for( x <- List ){
statement(s);
}
以上語(yǔ)法中, List 變量是一個(gè)集合笤妙,for 循環(huán)會(huì)迭代所有集合的元素冒掌。
實(shí)例
以下實(shí)例將循環(huán)數(shù)字集合。我們使用 List() 來(lái)創(chuàng)建集合蹲盘。再以后章節(jié)我們會(huì)詳細(xì)介紹集合股毫。
object Test {
def main(args: Array[String]) {
var a = 0;
val numList = List(1,2,3,4,5,6);
// for 循環(huán)
for( a <- numList ){
println( "Value of a: " + a );
}
}
}
- 以下是 for 循環(huán)中過(guò)濾的實(shí)例:
結(jié)構(gòu)如下:
for( var x <- List if condition1; if condition2... ){
statement(s);
}
示例:
object Test {
def main(args: Array[String]) {
var a = 0;
val numList = List(1,2,3,4,5,6,7,8,9,10);
// for 循環(huán)
for( a <- numList if a != 3; if a < 8 ){
println( "Value of a: " + a );
}
}
}
- for 使用 yield (守衛(wèi))
你可以將 for 循環(huán)的返回值作為一個(gè)變量存儲(chǔ)。語(yǔ)法格式如下:
var retVal = for{ var x <- List if condition1; if condition2...
}yield x
示例:
object Test {
def main(args: Array[String]) {
var a = 0;
val numList = List(1,2,3,4,5,6,7,8,9,10);
// for 循環(huán)
var retVal = for{ a <- numList if a != 3; if a < 8 }yield a
// 輸出返回值
for( a <- retVal){
println( "Value of a: " + a );
}
}
}