编写一个 Scala 程序,用于统计学生的成绩信息。程序包括以下功能: (1)输入学生的姓名和成绩,直到用户输入一个特定的结束标志(例如,输入一个空白行)为止。
时间: 2024-09-22 17:03:09 浏览: 47
在Scala中,你可以创建一个简单的命令行程序来实现这个需求。这里是一个基本的示例,使用`scala.io.StdIn.readLine()`函数从用户那里获取输入并处理成绩记录:
```scala
import scala.io.StdIn.readLine
object StudentScoreCounter {
def main(args: Array[String]): Unit = {
var name: Option[String] = None
var score: Option[Int] = None
while (true) {
val input = readLine("请输入学生姓名(空行结束):")
if (input.isEmpty) break // 如果是空行,结束输入循环
name = Some(input)
print("请输入学生的分数:")
val nextInput = readLine()
score = try { Some(Integer.parseInt(nextInput)) } catch {
case _: NumberFormatException => println("这不是一个有效的数字,请重新输入。"); score = None
}
}
if (name.isDefined && score.isDefined) {
val student = (name.get, score.get)
println(s"已记录学生 ${student._1} 的成绩:${student._2}")
} else {
println("未输入任何成绩信息。")
}
}
}
```
这个程序首先定义了一个`while`循环,等待用户输入。一旦用户输入了空行,我们就跳出循环。在每次循环中,我们先读取姓名,然后读取分数。如果输入的不是有效数字,我们会捕获`NumberFormatException`并提示用户重新输入。
最后,我们检查是否收集到了足够的信息,如果有,就打印出学生的姓名和成绩;如果没有,说明用户没有输入任何成绩,会显示相应的消息。
阅读全文