scala循环语句

Scala循环语句

Scala循环语句与java类似,总共有三种循环类型:

while循环:运行一系列语句,如果条件为true就会重复运行,直到条件变为false

object Test{
	def main(args: Array[String]) {
		var a = 30;
		
		do{
			println("Value of a:" + a);
			a = a + 1;
		} while (a < 20)
	}
}

输出:

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

do…while循环:类似 while 语句区别在于判断循环条件之前,先执行一次循环的代码块,也就是说,即使条件判断为false,代码块也会执行一次

object Test {
   def main(args: Array[String]) {
      // 局部变量
      var a = 10;

      // do 循环
      do{
         println( "Value of a: " + a );
         a = a + 1;
      }while( a < 20 )
   }
}

输出:

Value of a:30

for循环:用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。

格式:
for( var x <- Range ){
statement(s);
}

上面的示例代码中,Range可以是一个数字区间表示 i to j ,或者 i until j。左箭头 <- 用于为变量 x 赋值。

类似于python的语法

# python中的for循环
for x in Range():
	pass

for循环实例

i to j的形式

object Test{
	def main(args: Array[String]) {
		// 局部变量
		var a = 0;
		
		// for循环
		for ( a <- 1 to 5 ){
			println("Value of a:" + a);
		}
	}
}

输出:

Value of a:1
Value of a:2
Value of a:3
Value of a:4
Value of a:5

i until j的形式

object Test{
	def main(args: Array[String]) {
		
		var b = 0;
		for ( a <- 1 until 5 ){
			println("Value of b:" + a);
		}
	}
}

输出:

Value of b:1
Value of b:2
Value of b:3
Value of b:4

从上面的例子中科院发现,i to j的形式包含j, i until j的形式不包含j

for循环遍历集合

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3);

      // for 循环
      for( a <- numList ){
         println( "Value of a: " + a );
      }
   }
}

输出:

value of a: 1
value of a: 2
value of a: 3

for循环嵌套

在scala中,写一个for就可以实现for循环的嵌套,只要用‘;’来区分多个循环区间即可

object Test {
   def main(args: Array[String]) {
      var a = 0;
      var b = 0;
      // for 循环
      for( a <- 1 to 2; b <- 1 to 2){
         println( "Value of a: " + a );
         println( "Value of b: " + b );
      }
   }
}

输出:

Value of a: 1
Value of b: 1
Value of a: 1
Value of b: 2
Value of a: 2
Value of b: 1
Value of a: 2
Value of b: 2

for循环过滤

Scala 可以使用一个或多个 if 语句来过滤一些元素。

使用方法是在Range后面加上if判断语句即可,多个条件之间用‘;’隔开

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6,7,8,9,10);

      // for 循环
      for( a <- numList
           if a != 3; if a < 5 ){
         println( "Value of a: " + a );
      }
   }
}

输出:

Value of a: 1
Value of a: 2
Value of a: 4

for循环使用yield

yield会将循环中符合条件的元素记录下来,循环结束后返回一个列表list()

实例

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6,7,8,9,10);

      // for 循环
      var retVal = for{ a <- numList 
                        if a != 3; if a < 2
                      }yield a

      // 输出返回值
      println(retVal);
   }
}

输出:

retVal:List(1, 2, 4)
发布了38 篇原创文章 · 获赞 3 · 访问量 3117

猜你喜欢

转载自blog.csdn.net/weixin_44941795/article/details/104888029