【发布时间】:2019-01-11 11:52:02
【问题描述】:
我想检查用户键入的 Int 是否作为主要参数/变量(该类只有一个 Int 类型的参数)存在于填充类对象的 ArrayBuffer 中。
这是学校的作业,我无法获得教授或助理的帮助,所以我请求您的帮助。我必须编写一个类“ewallet”,它具有“client id”(Int)和“pin code”(两个数字之间的随机 Int)等属性。我没有使用“pin 码”作为类的参数,因为它似乎暗示在分配中,因为它说“当用户使用他的客户 ID 创建帐户时,它必须显示通行证”。我不应该能够创建 2 个具有相同客户端 ID 的电子钱包。
因此,如果存储电子钱包的 ArrayBuffer(或数组)中已经存在具有相同客户端 ID 的电子钱包,我将不得不拒绝创建电子钱包。
由于随机生成的“密码”,它创建了具有相同客户端ID和不同密码的不同电子钱包。那么如果已经存在具有某些参数的电子钱包,如何不将电子钱包(类)添加到列表中呢?
感谢您帮助新手。
我可以创建另一个数组列表来保存用户输入的客户端 ID,并将它们保存以与未来的客户端 ID 进行比较。但我想学习如何处理包含对象的数组。 我尝试使用 for (i
class ewallet(clientID: Int){
val id = clientID
val pass = 100 + Random.nextInt((99999-100)+1) //for the class, I didnt include the rest as its not related.
//for the main
def main(args: Array[String]): Unit = {
var ListClients = ArrayBuffer[ewallet]()
var action: Char = " ".charAt(0)
do {
println("[c]-Create ewallet. \n[a]-Access ewallet.\n[q]-Quit")
action = StdIn.readChar()
if (action == 'c') {
val NumClient = StdIn.readLine("Enter your client id :").toInt
var newClient = new ewallet(NumClient)
for (i <- ListClients) if (NumClient == i.id) {
println("Impossible, already exists.")
}
for (i <- ListClients) if (NumClient != i.id){
ListClients += newClient
println("Your pin code is : " + newClient.pass)
}
}
println(ListClients.mkString("\n"))
} while(action != 'q')
如果 NumClient != i.id,我应该能够将 newClient 添加到 ListClients,但是因为它最初是空的,所以它不会读取这些行……所以它什么都不做。
【问题讨论】:
标签: scala