字符串数组循环打印值null java
我已经实例化了一个包含10个字符串的字符串数组。我基本上想让用户输入一个主题名称,直到所有10个字符串都完成,或者如果用户输入“q”退出。一旦发生这种情况,应通过printArray方法打印字符串数组元素。这是到目前为止我所拥有的,但是我在“数组元素:”之后为每个值显示了一个“null”值,以组成总共10个字符串。如果我在几个条目之后输入“q”,而不是全部输入十个条目,就会出现这种情况。我想去掉“null”值,如果用户没有输入“q”,在第10个条目之后,它应该显示10个数组字符串数组循环打印值null java,java,arrays,eclipse,loops,sentinel,Java,Arrays,Eclipse,Loops,Sentinel,我已经实例化了一个包含10个字符串的字符串数组。我基本上想让用户输入一个主题名称,直到所有10个字符串都完成,或者如果用户输入“q”退出。一旦发生这种情况,应通过printArray方法打印字符串数组元素。这是到目前为止我所拥有的,但是我在“数组元素:”之后为每个值显示了一个“null”值,以组成总共10个字符串。如果我在几个条目之后输入“q”,而不是全部输入十个条目,就会出现这种情况。我想去掉“null”值,如果用户没有输入“q”,在第10个条目之后,它应该显示10个数组 { // I
{
// Instantiate a String array that can contain 10 items.
String[] array = new String[10];
// Read names of subjects into this array
// and count how many have been read in.
// There may be fewer than 10.
Scanner input = new Scanner(System.in);
System.out.println("Please enter a subject name or enter q to quit: ");
String subject = input.nextLine();
int i=0;
while (!"q".equals(subject))
{
array[i]=subject;
i++;
System.out.println("Please enter a subject name or enter q to quit: ");
subject = input.nextLine();
}
input.close();
System.out.println("The Array Elements:");
// Call printArray to print the names in the array.
printArray(array);
}
/**
* Method printArray prints the String values
* in a partially-filled array, one per line. Only the
* significant items in the array should be printed.
*/
public static void printArray(String[] args)
{
for(String val : args)
System.out.println(val);
}
你期待什么<代码>退出将始终等于“q”,因此不会进入循环
您可能需要而(!“q”.equals(subject))
,因为subject
是您在循环中更改的变量
String quit = "q";
及
这和
while(!true)
所以你永远不会进入while循环
我想你必须检查一下
while (!subject.equals(quit))
用于(i=0i我不认为循环工作不正常为什么?现在是学习如何使用调试器的好时机:一步一步地调试代码,并检查quit
和subject
和input
变量的值。您可能会发现问题。您的while循环甚至没有启动,因为您正在执行本质上说,虽然“q”不等于“q”
一旦您解决了“q”=退出问题,您可能会希望在while循环中添加一些内容,以便在收到10个条目后退出。
while(!true)
while (!subject.equals(quit))
for(i=0i<10;i++)
{
System.out.println(array[i]);
}