首页 > 解决方案 > java for循环提前终止

问题描述

这是我的 java 程序的前半部分——输入某些值。我注意到第一个接受答案键值的“for循环”在 2 或 3 次迭代后终止,而不是预期的 5 次,到目前为止,我没有运气找出原因。任何帮助将不胜感激,谢谢!

public class quizscores
{ public void main()throws IOException
    { BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("enter no of participants");
        int n=Integer.parseInt(br.readLine());
        char arr[][]=new char[n][5];
        
        System.out.println("Please enter answer key");
        char ans[]=new char[5];

        for(int i=0;i<5;i++) //referring to this for loop
        {
         ans[i]=(char)(br.read());
        }
        
        System.out.println("please enter answers of participants ");
        for(int i=0;i<n;i++)
        {for(int j=0;j<5;j++)
            {arr[i][j]=(char)(br.read());
            }
       }
      

标签: javaarraysfor-loopnested-loops

解决方案


BufferedReader.read()方法一次读取一个字符,因此在您的情况下会发生什么情况,当您在新行上输入时它将读取空格或回车尝试在没有空格的单行上给出答案键输入。

    System.out.println("Please enter answer key");
    char ans[]=new char[5];

    for(int i=0;i<5;i++) //referring to this for loop
    {
     ans[i]=(char)(br.read());
    }

Sample I/O
Please enter the answer key
ABCDE

推荐阅读