[原创]Scala学习:流程控制,异常处理

1.流程控制

  1)do..while

1   def doWhile(){
2       var line=""
3       do{
4           line = readLine()
5           println("readlineConetent" + line )
6       }while(line != " ")
7   }

  2)for    

方式一:

1 for (arg <-args)
2   println(arg)

方式二:

1 for (i <- 1 to 10 if i % 2 == 0)
2   println(i)

for参数里面同样支持if判断。比如输出1——10中的偶数

1 for (i <- 1 to 10 if i % 2 == 0)
2   println(i)

增强for循环

1 //增强for循环
2   def doForStrenth(){
3     var files = (new java.io.File(".")).listFiles()
4     for(file <- files){
5       println(file)
6     }
7   }

  3)while

1 var i=0
2 while (i < args.length) {
3   println (args(i))
4   i+=1
5 }

  4)if .. else ..  (可以将结果直接赋值给一个变量)

1   var file = if(args.isEmpty) args(0) else "spark"
2    println(file)

注意:

  1)Scala不支持i++和++i,需要使用i+=1来实现加一;

  

2.异常处理

try .. catch 机制,

  

 1   //异常部分
 2     def doException(){
 3       val n = 99
 4       val file = "scala.text"
 5      // OpenFileInputStreamAction
 6       try {
 7         val half = if (n % 2 == 0) n/2 else throw new RuntimeException("N must be event")
 8       } catch {
 9         case e: Exception => println("This  exception is :" +e.getMessage()  )
10       } finally {
11 //        close(file)
12       }
13   
时间: 2024-07-30 23:52:41

[原创]Scala学习:流程控制,异常处理的相关文章

[原创]Scala学习:编写Scala脚本

scala支持脚本 1)在/opt/scala-script下创建一个文件hello.scala 编辑内容如下: $ hello ,this is the first scala script 2)运行脚本 scala脚本的命令行参数保存在名为args的scala数组中.scala里,数组以0开始,可以通过在括号里指定索引值来访问数组元素.scala里数组 args 的第一个元素是:args(0),而不是像Java那样的:args[0].现在,把以下内容写到新文件: HelloWithArgs.

[原创]Scala学习:关于变量(val,var,类型推断)

1.常量定义:  val val 类似于java中的final变量.一旦初始化了,val就不能再被赋值 val megs = "hello world" 2.变量的定义: var var 如同java里面的非final变量,可以在它的声明周期内多次被赋值 var spark:String = " i am big data " var spark: String = " i am" 解释器中支持table键 补充和提示 3.变量类型推断: 当分配

[原创]Scala学习:函数的定义

方式一:标准的定义函数 def 函数名(参数1: 参数类型,参数2: 参数类型): 返回值类型 = { 函数体 } 例子 def max(x: Int,y: Int): Int ={ if(x > y) x else y } 注意:参数列表中必须标注好参数类型,因为scala编译器无法推断参数的类型 方式二:在一般的情况下可以省略,函数返回值的类型 def 函数名(参数1: 参数类型,参数2: 参数类型) = { 函数体 } def max(x: Int,y: Int)={ if(x > y)

[原创]Scala学习:Tuple,Array,Map ,文件操作

1.Tuple:元祖.是一个有用的容器对象. 1)特点:  ① 元祖是不可变的,即,当声明完了一个元祖,那么它的长度就不可以在改变:  ② 元祖可以包含不同类型的数据,对象:   ③ 索引是从 '_1' 开始,读取元祖中的内容 ④标识:' () ' 2)代码 1 //元祖 2 def doTuple() { 3 //'()' 定义元祖 4 val pair = (100, "scala", "spark") //元祖的类型val pair: (Int, String

[原创]Scala学习:数组的基本操作,数组进阶操作,多维数组

1.Scala中提供了一种数据结构-数组,其中存储相同类型的元素的固定大小的连续集合.数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合 2 声明数组变量: 要使用的程序的数组,必须声明一个变量来引用数组,必须指定数组变量可以引用的类型.下面是语法声明数组变量: var z:Array[String] = new Array[String](3) or var z = new Array[String](3) or var z = Array("Zara", &

[原创]Scala学习:for,function,lazy

1.for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环.Scalar的循环说明如下的各种形式: 1)Scala中for循环最简单的语法是: for( var x <- Range ){ statement(s); } 在这里,范围可能是一个数字范围,并且表示为i到j或有时像i到j左箭头 < - 操作者被称为生成器,这样命名是因为它是从一个范围产生单个数值. 2)for循环中,循环将遍历给定范围内的所有可能的计算,可以使用分号 (;) 分隔多个范围.下面是使用两个范围的例子,也

我的java学习の流程控制作业の人民币转换

import java.util.*; class 人民币转换作业{/***** 先判断是否为零,不是零正常for循环:新+unit+result: 为零则先判断是否消单位(只要不是万和亿都消单位), 再判断是否消零(上一个数是非零的数,且单位不是万和亿,正常输出), (上一个数是零,或单位是万和亿,零省去)(第一个零要消去) 否则正常输出:  ******/public static void main(String[] args){//需要转换的数:int a=210540080; //空字

Swift学习—流程控制

知识点: for in循环中的变量可以使用下划线_,意思是不需要用到此变量,系统就不会给变量分配存储空间 switch中case后面必须有可执行的语句,如果有许多结果需要执行同一个语句的话,swift支持多条件匹配 switch支持范围匹配 switch可以匹配元组数据 switch可以绑定数值 switch中的case可以使用where来增加判断条件 fallthrough关键字,当执行完前case后,会接着执行fallthrough后面的case或者default语句,fallthrough

Scala学习回顾(二)---- scala函数定义、流程控制及异常处理

注:本文学习源自:DT大数据梦工厂(微信公众号:DT_Spark) 1.上一节中我们了解到scala hello world,具体定义一个函数如下: 2.定义一个没有参数的函数,如下: 运行结果: 3.定义一个有参数的函数,如下: 4.流程控制 如果运行的时候,输入了参数,则情况如下: 方式二: 也可以将函数直接放入输出语句中: 如下: println(if (!args.isEmpty) args(0) else "scala.txt") 5.for循环 方式1: 方式2:(列出当前