Java 嵌套循环问题/循环2次,并且在开关情况下运行默认值

Java 嵌套循环问题/循环2次,并且在开关情况下运行默认值,java,jconsole,Java,Jconsole,我的嵌套循环有问题。每次我请求显示特定的数据类型时,它都会显示,但问题是。它总是使产量加倍。我该怎么阻止它?其他人也有。我在这里搜索所有嵌套的解决方案,但在我的代码中没有看到类似的代码解决方案。或者任何与我的代码相似的答案 注意:我是JAVA编程新手,这是我的第一个项目,所以请耐心地向我解释我做错的一切,以及我从哪里得到这个错误/错误:)提前谢谢 这是密码 case '2': System.out.print("Enter Subject: ");

我的嵌套循环有问题。每次我请求显示特定的数据类型时,它都会显示,但问题是。它总是使产量加倍。我该怎么阻止它?其他人也有。我在这里搜索所有嵌套的解决方案,但在我的代码中没有看到类似的代码解决方案。或者任何与我的代码相似的答案

注意:我是JAVA编程新手,这是我的第一个项目,所以请耐心地向我解释我做错的一切,以及我从哪里得到这个错误/错误:)提前谢谢

这是密码

case '2':
            System.out.print("Enter Subject: ");
            SB = buff.readLine();

            File readSUB = new File("E:\\Onceng Files\\JAVA GROUP PROJECT\\subject.txt");
            File readN = new File("E:\\Onceng Files\\JAVA GROUP PROJECT\\name.txt");
            File readSN = new File ("E:\\Onceng Files\\JAVA GROUP PROJECT\\studNo.txt");
            File readSEC = new File("E:\\Onceng Files\\JAVA GROUP PROJECT\\section.txt");
            File readTD = new File ("E:\\Onceng Files\\JAVA GROUP PROJECT\\TimeDate.txt");
            Scanner scaSUB = new Scanner(readSUB);
            Scanner scaN = new Scanner(readN);
            Scanner scaSN = new Scanner(readSN);
            Scanner scaSEC = new Scanner(readSEC);
            Scanner scaT = new Scanner(readTD);
            while(scaSUB.hasNextLine()) {
                String s = scaSUB.nextLine();
                SUBJECT.add(s);
            }

            while(scaN.hasNextLine()) {
                String s = scaN.nextLine();
                NAME.add(s);
            }

            while(scaSN.hasNextLine()) {
                String s = scaSN.nextLine();
                STUDNO.add(s);
            }

            while(scaSEC.hasNextLine()) {
                String s = scaSEC.nextLine();
                SECTION.add(s);
            }

            while(scaT.hasNextLine()) {
                String s = scaT.nextLine();
                TIME.add(s);
            }

            System.out.println("Attendance List by SUBJECT: "+SB);
            System.out.println("SUBJECT\t\tNAME\t\t\tSTUDENT NO.\t\tTIME & DATE");
            for(int x=0;x<SUBJECT.size();x++) {
                if(SB.equals(SUBJECT.get(x))) {
                    System.out.println(SUBJECT.get(x)+"\t\t"+NAME.get(x)+"\t\t"+STUDNO.get(x)+"\t\t"+TIME.get(x));
                } else
                    System.out.println("No Record of "+SB+" Subject");
            }

            break;

for(int x=0;xIt正在工作:D谢谢,先生:)。我想再问你一次,先生:)我还有一个问题。如果您使用该命令,它将显示。但如果你再试一次,输出就会加倍。如果您现在再试一次,2输出现在将变为3:(在代码成功执行后,我如何停止for循环以执行代码?或者我如何重置for循环中X的值?我没有完全理解您的要求,请给我举个例子。但是如果您想停止运行循环,可以使用break;等一下,我将输出放在这里,请参阅帖子先生:(我不知道我需要在这里做什么,用我目前的java知识我无法解决这个问题:(我只是一名一年级的学生,我在编程方面没有太多经验,尤其是在所有循环方面
    @#@#@#@#@ MENU @#@#@#@#@
[1] LOGIN ATTENDANCE
[2] SHOW ATTENDANCE BY SUBJECT
[3] SHOW ATTENDANCE BY SECTION
[4] SHOW ALL RECORD
Input Number: 2
Enter Subject: JAVA
Attendance List by SUBJECT: JAVA
SUBJECT     NAME            STUDENT NO.     TIME & DATE
No Record of JAVA Subject
No Record of JAVA Subject
No Record of JAVA Subject
JAVA        Saludaga Joshua     19-01297        Tue, 12/03/2019 18:02
JAVA        Pulano Hardhie      19-00900        Tue, 12/03/2019 18:02
JAVA        Tatoy Cherrylyn     19-00751        Tue, 12/03/2019 18:02
        for(int x=0;x<SUBJECT.size();x++) {
            if(SB.equals(SUBJECT.get(x))) {
                System.out.println(SUBJECT.get(x)+"\t\t"+NAME.get(x)+"\t\t"+STUDNO.get(x)+"\t\t"+TIME.get(x));
            } else
                System.out.println("No Record of "+SB+" Subject");
        }
boolean found = false;
        for(int x=0;x<SUBJECT.size();x++) {
            if(SB.equals(SUBJECT.get(x))) {
                System.out.println(SUBJECT.get(x)+"\t\t"+NAME.get(x)+"\t\t"+STUDNO.get(x)+"\t\t"+TIME.get(x));
found =true;
            }

        }
if(!found)
  System.out.println("No Record of "+SB+" Subject");