Scala学习(二)程序控制语句

来源:互联网 发布:淘宝店铺运营外包 编辑:程序博客网 时间:2024/05/16 10:50

Scala的基本数据类型与java中的基本数据类型一一对应,不同的是Scala的基本数据类型头字母必须大写。

表达式(expression)和语句(statement)。表达式有值,而语句没有值只执行操作。

程序控制结构
if的使用:

val x=if(“hello”==”hell”)  1 else 0

while的使用:

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

do while的使用:

var line = ""do {    line = readLine()    println("Read: "+ line)} while (line != "")

for循环的使用:

scala> val filesHere = (new java.io.File(".")).listFiles//集合操作方式scala> for (file <- filesHere)     | println(file)//间接调用方式(不常用)for (i <- 0 to filesHere.length - 1)println(filesHere(i))

//程序中的<-被称为生成器,在执行过程中,集合filesHere中(Array[File])的元素将依次赋给file,file类型为File,打印时调用其toString方法将文件名称打印出来。

在for循环结构中还可以加入if进行过滤操作

val filesHere = (new java.io.File(".")).listFilesfor (file <- filesHere if file.getName.endsWith(".scala"))println(file)//还可以加入多个过滤条件,用;隔开for (file <- filesHereif file.isFile;if file.getName.endsWith(".scala")) println(file)

//多重循环的实现:

def fileLines(file: java.io.File) =scala.io.Source.fromFile(file).getLines.toListdef grep(pattern: String) =for (     file <- filesHere     if file.getName.endsWith(".scala");     line <- fileLines(file)     if line.trim.matches(pattern)   ) println(file +": "+ line.trim)    grep(".*gcd.*")//前一个for相当于下列语句def grep(pattern: String) =for (    file <- filesHere     if file.getName.endsWith(".scala"))     for(       line <- fileLines(file)       if line.trim.matches(pattern)      )      println(file +": "+ line.trim)      grep(".*gcd.*")

参考博客:http://blog.csdn.net/lovehuangjiaju/article/details/46953423

原创粉丝点击