我可能得错了标题,但我不知道还能说些什么。
我们的讲师今天给了我们这个代码:
do {
System.out.println("Enter an amount for a new account, or anything else to end: ");
if(in.hasNextInt()) {
int openBalance = in.nextInt();
System.out.print("Enter account name: ");
String name = in.next();
// part I don't understand
BankAccount newAccount = new BankAccount(name, openBalance);
bankAccountList.add(newAccount);
// part I don't understand
} else {
finished = true;
}
} while(!finished);
我理解除粗体之外的一切(那么应该是大胆的但是代码是这样的),我们必须根据用户的需要制作尽可能多的银行账户,直到输入除了int之外的东西。
但不会
BankAccount newAccount = new BankAccount(name, openBalance);
创建一个与之前帐户名称相同的对象? 如果有人能够解释代码,那将是惊人的。谢谢。
答案 0 :(得分:2)
String name = in.next();
name
在循环的每次迭代中应该是不同的(因为用户在每次迭代中输入一个新名称),因此每个帐户都有不同的名称。
当然,用户可以输入两次相同的名称,这会创建两个名称相同的帐户,但这是一个不同的问题。
答案 1 :(得分:0)
了解局部变量。在您的情况下,您创建的本地对象只对一次交互有效。它们可以再次创建,因为在下一次迭代中,先前的对象无效。
答案 2 :(得分:0)
整个代码处于循环中。对于每次迭代,用户必须输入open balance(int value)和Name(String value)。这两个值用作创建BankAccount类型对象的参数。
因此,每次使用用户输入的值创建对象时。如果用户为开放余额输入一些非整数值,则迭代将结束。