1.13
键盘录入
使用步骤:
导包
import scala.io.StdIn
1
通过 stdIn.readXxx() 接收用户键盘录入的数据
接收字符串数据:
StdIn.readLine()
1
接收整数数据:
StdIn.readInt()
1
示例:提示用户输入字符串
scala> import scala.io.StdIn
import scala.io.StdIn
scala> print("输入一句话:")
输入一句话:
scala> print("输入的是:"+StdIn.readLine())
输入的是:scala
1
2
3
4
5
6
7
运算符
算数运算符
包括 +(加号)、-(减号)、*(乘号)、/(除号)、%(取余)。
Scala中没有 ++,--这两个运算符。
a % b,底层是 a - a/b * b
Scala 中把字符串和整数数字 n 相乘相当于让字符串重复 n 次。
scala> print("x"*3)
xxx
1
2
赋值运算符
基本赋值运算符 =
扩展赋值运算符 +=、-=、*=、/=、%=
关系运算符
包括>、>=、<、<=、==、!=
最终结果一定是 true 或 false。
如果需要比较数据值,使用==或者!=,如果比较引用值需要使用 eq 方法。
scala> val s1 = "a"
s1: String = a
scala> val s2 = s1 + ""
s2: String = a
scala> print(s1 == s2)
true
scala> print(s1.eq(s2))
false
1
2
3
4
5
6
7
8
9
10
逻辑运算符
包括 &&、||、!
最终结果一定是 true 或 false。
位运算符
包括&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移一位,相当于乘2)、>>(右移一位,相当于除以2)
位运算符只针对于整形数据,运算符操作的是数据的二进制补码形式。
流程控制
顺序结构
程序按照从上至下、从左至右的顺序依次逐行执行,中间没有任何判断和跳转。
顺序结构是 Scala 中的默认流程结构。
选择结构
if 注意事项:
和 Java 一样,如果大括号内只有一行代码可省略大括号
条件表达式有返回值
没有三元表达式,可以使用 if-else 代替
scala> println(if(1==1) 1 else 0)
1
1
2
块表达式:
使用一对大括号表示一个块表达式,块表达式也是有返回值的,最后一个表达式的值就是返回值
scala> val n = {
| println(1)
| 1+2
| }
1
n: Int = 3
1
2
3
4
5
6
循环结构
for 循环
for(i <- 表达式/数组/集合){
//逻辑
}
1
2
3
例如:打印10次 “hello scala”
scala> val n = 1 to 10
n: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
scala> for( i <- n){
| println("hello scala")
| }
hello scala
hello scala
hello scala
hello scala
hello scala
hello scala
hello scala
hello scala
hello scala
hello scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
**守卫:**for 表达式中的 if 判断语句。
例如输出1 - 10 之间的偶数:
scala> for(i <- 1 to 10 if i % 2 == 0 ) println(i)
2
4
6
8
10
1
2
3
4
5
6
**推导式:**Scala 中的 for 循环也有返回值,可以使用 yield 表达式构建出一个集合。
例如,生成一个10、20…100 的集合:
scala> val set = for(i <- 1 to 10) yield i * 10
set: scala.collection.immutable.IndexedSeq[Int] = Vector(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)

浙公网安备 33010602011771号