Scala学习第二天 Scala函数定义、流程控制、异常处理

1、Scala的函数定义

定义函数,需要给出函数的名称、参数和函数体,按照以下格式定义scala函数.


def 函数名称(函数输入参数类型): Unit{
        //函数的实现提
}
	
1.2 没有输入参数的函数

 def doWhile() {
    var line = ""
    do {
      line = readLine()
      println("Read: " + line)
    } while (line != "")
  }
  def main(args: Array[String]) = {
    doWhile
   
  }

(1)可以看到输出语句的结尾没有以“;”结束,因为scala的设计者认为,多敲一次键盘没有必要,对开发者来说是痛苦的。 他不太赞成在语句的结束写 “;” , 但你也可以写 “;” 结束.

(2)代码解释:readLine读取键盘输入的内容,再由println输出。do while循环先执行一次,在判断while的条件是否满足,如果没有输出则停止,否则一直继续下去。

1.3有输入参数的函数

def looper(x: Long, y: Long): Long = {
    var a = x
    var b = y
    while (a != 0) {
      val temp = a
      a = b % a
      b = temp

    }
    b
  }

  def main(args: Array[String]) = {

    println(looper(100, 298))
  }					

然后运行这段代码,得到以下值:

2
					
代码解释:参数x、y是Long类型,再由100赋值a,298赋值b,判断a是否不等于0,不等于0,则进入循环体,a赋值给temp,a对b取模,再把temp赋值给b,然后一直循环,当a等于0,推出循环,把b的值输出,可以看出最后结果是2.
2 流程控制
2.1 if

def main(args: Array[String]) = {
    var file = "scala.txt"
    if (!args.isEmpty) {
      file = args(0)
    }

    println(file);
  }					

代码解释:如果有输入值,赋值给file,否则默认输出"scala.txt".

2.2 for

def main(args: Array[String]): Unit = {
    for (i <- 1.to(10)) {
      println("Number is: " + i)
    }
    
  }

代码解释:从1到10循环输出。<-代表从1开始

2.3 增强for
def main(args: Array[String]): Unit = {
    val files = (new java.io.File(".")).listFiles()
    for (file <- files) {
      println("当前路径下有文件 -> "+file)
    }
  }

代码解释:打印当前目录下的文件

3 异常处理

def main(args: Array[String]): Unit = {
    val n = 99
    try {
      val half = if (n % 2 == 0) n / 2
      else throw new RuntimeException("N must be event")
    } catch {
      case e: Exception => println("The exception is:" + e.getMessage)
    } finally {
    }
  }
              
代码解释:异常处理与Java类似,不同点在于catch是根据case类型匹配异常,因为99是奇数,模2不等于0,抛RuntimeException被Exception匹配,输出The exeception is N must be event.

 def doWhile() {
    var line = ""
    do {
      line = readLine()
      println("Read: " + line)
    } while (line != "")
  }
  def main(args: Array[String]) = {
    doWhile
   
  }                                                                                                                              

Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:

百度云盘:http://pan.baidu.com/s/1c0noOt6

腾讯微云:http://url.cn/TnGbdC

360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值