标签:while循环 app lex ring 下标 函数 过滤 fileread 结果
Scala的if表达式和Java语言的用法一样,if,if else,if elseif else这三种结构。
object If_expression {
def main(args: Array[String]): Unit = {
/**
* Scala的if表达式和Java的一样用法
*/
val a = readInt()
if(a > 0){
println(a+" > 0")
}else if(a < 0){
println(a+" < 0")
}else{
println(a+" = 0")
}
}
}
Scala的while,do while的用法和Java的用法一样,举例说明下。
object While_loop {
def main(args: Array[String]): Unit = {
/**
* while循环,do while循环和Java的用法一样
*/
var i = 10
var sum = 0
while(i > 0){
sum += i
i -= 1
}
println(sum)
i = 10
sum = 0
do{
sum += i
i -= 1
}while(i>0)
println(sum)
}
}
Scala的for循环和Java的用法不一样,可以大概分为以下几种。
(1)直接遍历数组,有三种
(2)遍历数组,表达式中带有过滤条件
object For_expression {
def main(args: Array[String]): Unit = {
/**
* Scala的for循环和Java的用法不一样
*/
val list = Array(1,2,3,4,5)
/**
* 第一种,使用a to b,范围[a,b],使用下标
*/
for(i <- 0 to list.length-1){
print(list.apply(i)+" ")
}
println()
/**
* 第二种,使用a until b,范围[a,b),使用下标
*/
for(i <- 0 until list.length){
print(list(i)+" ")
}
println()
/**
* 第三种,直接遍历,不需要下标,i指向list的每个元素
*/
for(i <- list){
print(i+" ")
}
println()
/**
* for循环中使用多个过滤器
*/
for(i <- list if i%2==0 if i>3){
print(i+" ")
}
println()
for(i <- list if check(i) ){
print(i+" ")
}
println()
/**
* 构造新集合,使用yield语法
*/
val t = for(i <- list if i>2) yield{
val k = i * 2 + 10
k
}
println(t.toList)
}
def check(a:Int): Boolean = if(a>2) true else false
}
Scala的异常处理和Java的用法一样,使用try catch语句。
object Try_catch {
def main(args: Array[String]): Unit = {
/**
* Scala的处理异常和Java用法一样
*/
try {
val f = new FileReader("try.txt")
}catch {
case ex: FileNotFoundException => println("文件不存在")
case ex: IOException => println("IO异常")
}finally {
println("异常处理完成")
}
}
}
Scala的match匹配功能和Java的switch case一样,也有返回值。
object Match_expression {
def main(args: Array[String]): Unit = {
/**
* Scala的match语法类似于Java的switch语法
*/
/**
* 正常匹配,然后打印结果
*/
val name = "alex"
name match {
case "Lei" => println("Name is Lei")
case "alex" => println("Name is alex")
case "Lily" => println("Name is Lily")
case _ => println("Other")
}
/**
* 匹配选择,有返回值,而且匹配成功之后不会继续往下匹配
*/
val fri = "Lily"
val t = fri match {
case "Alex" => "A"
case "Lily" => "L1"
case "Bob" => "B"
case "Lily" => "L2"
}
println(t)
}
}
Scala中没有break和continue关键字,使用其它的方式实现break和continue的功能,需要导入包,import scala.util.control.Breaks._包。
import scala.util.control.Breaks._
/**
* @Author:Alex_lei
* @Description:
*/
object BC {
def main(args: Array[String]): Unit = {
/**
* 这里说的是Java的break和continue,Scala中并没有这个用法
* 使用变量标记实现
*/
/**
* 求前五个元素和,实现break用法
*/
val arr = Array(1,2,3,4,5,6)
var sum = 0
breakable({
for(i <- arr){
if(i>5)
break()
sum += i
}
})
println(sum)
/**
* 求前三个元素的和,实现continue
*/
sum = 0
for(i <- arr){
breakable({
if(i>3)
break()
sum += i
})
}
println(sum)
/**
* 二者区别在于执行的循环体在breakable外还是内,二者都是使用break()函数
*/
}
}
标签:while循环 app lex ring 下标 函数 过滤 fileread 结果
原文地址:https://www.cnblogs.com/lyr999736/p/11145807.html