原有代码,其中使用了while循环和var
/**
* 模版方法
* 玩游戏,从控制台读入
*/
def play(): Unit = {
println(s"当前积分为$score,请输入您本次游戏的筹码,0退出本游戏")
var point = io.StdIn.readDouble()
while (point != 0) {
check(point)
println(s"当前积分为$score,请输入您本次游戏的筹码,0退出本游戏")
point = io.StdIn.readDouble()
}
println("感谢您的使用,下次再见")
}
重构1:
使用do while可以使得println的次数少一次
var point = 0.0
do {
println(s"当前积分为$score,请输入您本次游戏的筹码,0退出本游戏")
point = io.StdIn.readDouble()
check(point)
} while (point != 0)
重构2:
/**
* 模版方法
* 玩游戏,从控制台读入
*/
def play(): Unit = {
println(s"当前积分为$score,请输入您本次游戏的筹码,0退出本游戏")
val point = io.StdIn.readDouble()
check(point)
if (point != 0) play() else println("感谢您的使用,下次再见")
}
可以使用递归
/**
* 模版方法
* 玩游戏,从控制台读入
*/
def play(): Unit = {
println(s"当前积分为$score,请输入您本次游戏的筹码,0退出本游戏")
var point = io.StdIn.readDouble()
while (point != 0) {
check(point)
println(s"当前积分为$score,请输入您本次游戏的筹码,0退出本游戏")
point = io.StdIn.readDouble()
}
println("感谢您的使用,下次再见")
}
重构1:
使用do while可以使得println的次数少一次
var point = 0.0
do {
println(s"当前积分为$score,请输入您本次游戏的筹码,0退出本游戏")
point = io.StdIn.readDouble()
check(point)
} while (point != 0)
重构2:
/**
* 模版方法
* 玩游戏,从控制台读入
*/
def play(): Unit = {
println(s"当前积分为$score,请输入您本次游戏的筹码,0退出本游戏")
val point = io.StdIn.readDouble()
check(point)
if (point != 0) play() else println("感谢您的使用,下次再见")
}
可以使用递归