gpt4 book ai didi

java - 用户输入后打印数组

转载 作者:行者123 更新时间:2023-12-01 22:15:42 25 4
gpt4 key购买 nike

我正在开发一个类,它将接受用户输入来为源类中创建的对象分配值。然后这些对象将被添加到一个数组中,然后打印其上的值。但是, print : list 下的“列表”告诉我需要初始化变量。为什么它无法识别这是一个数组,尽管它在我的 do 循环中似乎工作得很好?

import java.util.Scanner;
import name.Names;

public class NameTester {

public static void main(String[] args) {
// TODO Auto-generated method stub
String entry;
Scanner firstscan = new Scanner(System.in);
Scanner lastscan = new Scanner(System.in);
Scanner codescan = new Scanner(System.in);
Scanner entryscan = new Scanner(System.in);
String first;
String last;
int code;

System.out
.println("This program will prompt you to input first name, +"
+ "last name, and zip code for an individual. Hit \"x\" when finished\n");

do {
System.out.println("Enter first name:");
first = firstscan.nextLine();
System.out.println("Enter last name:");
last = lastscan.nextLine();
System.out.println("Enter zip code:");
code = codescan.nextInt();

Names nm = new Names(first, last, code);

Names[] list = new Names[25];

int count = 0;
list[count] = nm;
count++;

System.out
.println("To quit hit \"X\" or any other key followed by enter to continue:");
entry = entryscan.nextLine();

} while (!(entry.equalsIgnoreCase("x")));

for (Names print : list)
System.out.println(print + "");
}
}

最佳答案

首先,您在循环内实例化数组,这意味着每次循环运行时,它都会创建一个新数组而不是更新旧数组。然后,一旦离开循环,就离开了它的“范围”。这意味着您在循环内声明的所有内容在外部都不可用。解决方案是在循环外部声明数组。

java 中的每个 block 都有自己的作用域(通过括号定义)。虽然您可以在 block 内部访问 block 外部声明的变量,但反之则不行;如你看到的。只要google一下javascope,你就会明白更多。希望有帮助;)

关于java - 用户输入后打印数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083086/

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