gpt4 book ai didi

java - Do While 循环第二次不与扫描仪协调

转载 作者:行者123 更新时间:2023-12-02 09:36:42 25 4
gpt4 key购买 nike

我有一个项目需要帮助。我是编程初学者,我不太明白这一点。希望能得到答复。

Scanner reg_input = new Scanner(System.in);
int ctr = 0,item = 1;
char reg_mn = 'y', choice;
String[] user = new String[item];
String[] pass = new String[item];
reg_mn = 'y';
do {
System.out.println("[REGISTER]");
System.out.println("==========");
System.out.print("Username: ");
user[ctr] = reg_input.next(); //Line 11
System.out.print("Password: ");
pass[ctr] = reg_input.next();
System.out.println("==========");

System.out.println("Do you wish to Continue? [Y/N]");
choice = reg_input.next().charAt(0);

if (choice == 'y' || choice =='y') {
item = item + 1;
}
else if (choice == 'n' || choice == 'N') {
reg_mn = 'n';
item = item + 1;
return;

}

ctr++;
} while (reg_mn == 'y' || reg_mn == 'Y');

the 1st loop is fine. The problem here is when I type "y" to try and get the 2nd loop, I get an error from the scanner at Line 11

  • 我研究了这样的问题,但我似乎陷入了死胡同,或者我没有正确阅读它。

最佳答案

因为你声明了一个字符串,其大小与最初值为1的项目相同。因此,如果您将该项增加 1,但字符串数组大小不会增加,因为它声明的大小为 1。

String[] user = new String[item];
String[] pass = new String[item];

这样改

String[] user = new String[30];
String[] pass = new String[30];

您必须声明某个最大尺寸。

我建议您使用任何java Collections来实现此目的,例如HashMap。因为在这里您声明了具有最大大小的字符串数组,因此它分配了该大小,但是如果您仅存储 2 个用户,则剩余大小将被浪费。为此,请使用集合。

关于java - Do While 循环第二次不与扫描仪协调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57451216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com