Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串数组循环打印值null java_Java_Arrays_Eclipse_Loops_Sentinel - Fatal编程技术网

字符串数组循环打印值null java

字符串数组循环打印值null java,java,arrays,eclipse,loops,sentinel,Java,Arrays,Eclipse,Loops,Sentinel,我已经实例化了一个包含10个字符串的字符串数组。我基本上想让用户输入一个主题名称,直到所有10个字符串都完成,或者如果用户输入“q”退出。一旦发生这种情况,应通过printArray方法打印字符串数组元素。这是到目前为止我所拥有的,但是我在“数组元素:”之后为每个值显示了一个“null”值,以组成总共10个字符串。如果我在几个条目之后输入“q”,而不是全部输入十个条目,就会出现这种情况。我想去掉“null”值,如果用户没有输入“q”,在第10个条目之后,它应该显示10个数组 { // I

我已经实例化了一个包含10个字符串的字符串数组。我基本上想让用户输入一个主题名称,直到所有10个字符串都完成,或者如果用户输入“q”退出。一旦发生这种情况,应通过printArray方法打印字符串数组元素。这是到目前为止我所拥有的,但是我在“数组元素:”之后为每个值显示了一个“null”值,以组成总共10个字符串。如果我在几个条目之后输入“q”,而不是全部输入十个条目,就会出现这种情况。我想去掉“null”值,如果用户没有输入“q”,在第10个条目之后,它应该显示10个数组

{
    // 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]);
}