作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个项目需要帮助。我是编程初学者,我不太明白这一点。希望能得到答复。
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/
我是一名优秀的程序员,十分优秀!