示例一:运算符使用
object Demo01 {
def main(args: Array[String]): Unit = {
// / 的使用
var r1 : Int = 10 / 3 // 3
println("r1=" + r1)
var r2 : Double = 10 / 3 // 3.0
println("r2=" + r2)
var r3 : Double = 10.0 / 3 // 3.333333
println("r3=" + r3 )
println("r3=" + r3.formatted("%.2f") )// 3.33
// % 的使用
//1. % 的运算的原则: a % b = a - a/b * b
println(10 % 3) // 1
println(-10 % 3) // -1 // -10 % 3 = (-10)- (-3) * 3 = -10 + 9 = -1
println(-10 % -3 ) // -1 // -10 % -3 = (-10)- (3) * -3 = -10 + 9 = -1
println(10 % -3 ) // 1
// ++ 和 --
// 说明,在scala中没有 ++ 和 --, 而使用 +=1 和 -= 1
var num1 = 10
//num1++ 错误
num1 += 1 // 替代 num1++
//num-- 错误
num1 -= 1 // 替代 num1--
println(num1)
}
}
实列二:算数练习
object Exercise01 {
def main(args: Array[String]): Unit = {
/*
假如还有97天放假,问:xx个星期零xx天
1.搞清楚需求(读题)
2.思路分析
(1) 变量保存97
(2) 使用 /7 得到 几个星期
(3) xx天 使用 %
3.代码实现
*/
val days = 97
printf("统计结果是 %d个星期零%d天", days / 7, days % 7)
/*
定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),
请求出华氏温度对应的摄氏温度。[测试:232.5]
分析
1. 变量保存华氏温度, 变量保存摄氏温度
2. 公式有,就直接套用
*/
val huashi = 232.5
val sheshi = 5.0 / 9 * (huashi - 100)
println("对应的摄氏温度" + sheshi.formatted("%.2f"))
}
}
示例三
object Demo01 {
def main(args: Array[String]): Unit = {
var num = 2
num <<= 2 // num = 8
num >>= 3 // num = 4
println("num=" + num)
//在scala中支持代码块,返回值
val res = {
if (num > 1) "hello,ok" else 100
}
println("res=" + res)
//有两个变量,a和b,要求将其进行交换,但是不允许使用中间变量,最终打印结果
var a = 10
var b = 20
a = a + b
b = a - b // ==>(a+b)-b = a
a = a - b // ==>(a+b)-a = b
//位运算。。
}
}
实例四:object对象方法的调用
object Demo01 {
def main(args: Array[String]): Unit = {
/*
要求:可以从控制台接收用户信息,【姓名,年龄,薪水】
*/
println("请输入姓名")
val name = StdIn.readLine()
println("请输入年龄")
val age = StdIn.readInt()
println("请输入薪水")
val sal = StdIn.readDouble()
printf("用户的信息为 name=%s age=%d sal=%.2f", name, age, sal)
//Cat.sayHi()
//Cat.sayHello()
//Cat.sayHi()
hi()
}
//定义方法
def hi(): Unit = {
println("hi")
}
}
//声明了一个对象(伴生对象), 讲解oop时,还要深入系统的讲解
object Cat extends AAA {
//方法
def sayHi(): Unit = {
println("小狗汪汪叫....")
}
}
trait AAA { //AAA是特质,等价于java中的interface + abstract class
def sayHello(): Unit = {
println("AAA sayHello")
}
}
实例五:分支计算
object Demo01 {
def main(args: Array[String]): Unit = {
val num = if (5 > 4) 5 else 4
//val num2 = 5 > 4 ? 5 : 4 错误
/**
* 案例1:求两个数的最大值
* 案例2:求三个数的最大值
*
*/
val n1 = 4
val n2 = 8
var res = if (n1 > n2) n1 else n2
println("res=" + res)
val n3 = 11
res = if (res > n3) res else n3
println("res=" + res)
//,运算
println("hello", "abc" + " uuu", "kkk")
}
}