java代码输出NULL而不是值
代码假定打印用户输入的名称,但它只是打印空值,而不是打印实际名称。我使用数组来存储名称和值
import javax.swing.JOptionPane;
class PrintName {
public static void main(String[] args) {
int nameCount = Integer.parseInt(JOptionPane.showInputDialog(null, " how many NAMES you want to enter?"));
String [] userFirstName = new String [nameCount];
String [] userLastName = new String [nameCount];
for (int i=0; i<nameCount; i++) {
fullName(userFirstName[i], userLastName[i]);
}
for (int i=0; i<nameCount; i++) {
JOptionPane.showMessageDialog(null, userFirstName[i] + "\n" + userLastName[i]);
}
public static void fullName (String firstName, String nLastName) {
firstName = JOptionPane.showInputDialog(null, "What's your first name?");
nLastName = JOptionPane.showInputDialog(null, "What's your last name?");
}
}
# 1 楼答案
这是因为在
fullName()
中输入和获取的名称没有反映在实际数组userFirstName
,userLastName
中原因是,它是一个
pass by value
。您每次都将userFirstName[i]
的副本(实际上是null
)传递给fullName()
方法,并在那里修改本地副本。对firstName
和nLastName
所做的更改不会反映回userFirstName
数组你可以做的一件事就是修复它
在
for
循环中获取main()
方法中的值# 2 楼答案
我认为发生这种情况是因为您更改了值,而不是值指针,为此更改了fullName公司:
现在您可以通过以下方式调用函数:
我希望这对你有用:)