Scala学习03——基础语法

 前言

        此系列为scala学习文章,适用于为学spark而学习scala

        视频参考地址:Scala快速入门(适合为学Spark学习Scala的同学)

        系列文章如下:

        1. Scala学习01——Scala介绍

        2. Scala学习02——Scala类和对象

        3. Scala学习03——基础语法

        4. Scala学习04——Scala方法与函数

        5. Scala学习05——Scala集合

        6. Scala学习06——trait特性、模式匹配、偏函数、样例类

        7. Scala学习07——隐式转换

        资料下载地址:Scala课件资料.docx

目录

一、 循环语句

1. if else

2. for

3. while,do...while...


一、 循环语句

1. if else

val age =18 
if (age < 18 ){
    println("no allow")
}
else if (18<=age&&age<=20){
    println("allow with other")  //输出该语句
}else{
    println("allow self")
}

2. for

(1)to和until 的用法(不带步长,带步长区别)

  • 在scala中,Range代表的是一段整数的范围
  • until和Range是左闭右开,1是包含的,10是不包含。而to是左右都包含。
/**
     * to和until
     * 1 to 10 返回1到10的Range数组,包含10
     * 1 until 10 返回1到10 Range数组 ,不包含10
*/
    println(1 to 10 )//打印 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    println(1.to(10))//与上面等价,打印 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    
    println(1 to (10 ,2))//步长为2,从1开始打印 ,1,3,5,7,9
    println(1.to(10, 2)) 
    
    println(1 until 10 ) //不包含最后一个数,打印 1,2,3,4,5,6,7,8,9
    println(1.until(10))//与上面等价
    
    println(1 until (10 ,3 ))//步长为2,从1开始打印,打印1,4,7


for(i <- 0 to 10);
for(i <- 0 until 10);
var r = Range(1,10);
var r = Range(1,10,2);//1到10的整数,步长为2,步长不能为0,默认步长为1
这些底层其实都是Range,Range(1,10,2):1是初始值,10是条件,2是步长,步长也可以为负值,递减。

(2)创建for循环

for( i <- 1 to 10 ){
      println(i)
}
//for循环数组
val arr=Array(“a”,”b”,”c”)
for(i<-arr)
println(i)
  • 多层 for 循环,可以用分号隔开
  • 字符串占位符用 s"第 $ i 次  "
  • scala中不能使用count++,count—只能使用count = count+1 ,count += 1
//可以分号隔开,写入多个list赋值的变量,构成多层for循环
    //scala中 不能写count++ count-- 只能写count+
    var count = 0;
    for(i <- 1 to 10; j <- 1 until 10){
      println("i="+ i +",	j="+j)
      count += 1
    }
    println(count);
    
    //例子: 打印小九九
    for(i <- 1 until 10 ;j <- 1 until 10){
      if(i>=j){
    	  print(s"$i * $j = " + i*j + '\t')
        
      }
      if(i==j ){
        println()
      }
      
    }
  •  for循环中可以加条件判断,可以使用分号隔开,也可以不使用分号(使用空格)
for(i <- 1 to 10 ; if(i%2 == 0) ; if(i>=5)){
    println(s"第 $i 次 输出结果")
}
  • for循环用yield 关键字返回一个集合(把满足条件的i组成一个集合)
var res = for (i <-1 to 20   if (i>5)) yield i
    println("res",res)

       输出为vector集合

3. while,do...while...

  • while循环,while(){},do {}while()
var i = 0
var j=0
// while
while(i<3){
   println(s"第 i $i 次")
   i +=1
}

//do...while...
do{
  println(s"第 j $j 次")
   j +=1
}while(j<3)

        输出结果:

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值