06分支循环

1.分支if

object IfDemo{
	/*
	java中有?:(三目运算符),但必须有返回值。
		Scanner sc = new Scanner(System.in);
		int input = sc.nextInt();
		int age = input > 50 ? 100 : 101;
	*/
	def main(args:Array[String]):Unit = {
		//scala中的if自带返回值
		val scn = 88
		val age = if(scn > 50) 100 else 101
		
		//标准写法if(表达式){}
		val age2 = if(scn > 50){
			1010
			100     //最后一个值作为返回
		}
		
		//若所有条件写在一行则使用;分号隔开
		var a,b,c = 0
		if(a<10){b=b+1;c=c+1}
		//若返回数据类型不一致,取其父类Any
		val res:Any = if(a<10) "谁" else 111
	}
}

2.循环for(类似java中的增强for)

object LoopDemo{
	def main(args:Array[String]):Unit = {
		//定义一个数组,后面为初始元素
		val array = Array(1,2,3,4)
		for(ele <- array){
			println(ele)
		}
		
		//0 to 5 会得到一个范围(0,5都含有)
		for(item <- 0 to 5){
			println(item)
		}
		
		//0 until 5 也有一个范围(不含有5)(until从…到…为止)
		for(i <- 0 to 5){
			println(i)
		}
		
		//守卫,添加一个条件
		for(e <- array if e%2==0){
			println(e)
		}
		
		//可以双重for循环
		for(m <- 1 to 3){
			for(n <- 1 until 3){
				println(m+"**"+n)
			}
		}
		//双重的变形
		for(m <- 1 to 3 ; n <- 1 until 3){
			println(m+"**"+n)
		}
		
		//for循环推导式,加入yield写法推到一个集合
		val res = for(i <- 1 to 10) yield i
		
		//foreach遍历集合数组,没有返回值,只能打印
		array.foreach(x => println(x))
		array.foreach(println)
		/* map遍历函数与foreach一样,但有返回值。
			第一个x是 当前数组中要遍历的元素
			  =>   是 语法格式
			第二个x是 函数的实现体
			使用toBuffer可以查看数组,否则是地址
		*/
		println(array.map(x => x).toBuffer)
	}
}
发布了179 篇原创文章 · 获赞 20 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ExclusiveName/article/details/104375204