代码,运行结果如下,为什么结果会重复5次,java新手求解惑

问题描述:

    int x=0;
    Enumeration portList1 = CommPortIdentifier.getPortIdentifiers();
    while (portList1.hasMoreElements()) {
        x++;
        test_buffer[x]=((CommPortIdentifier) portList1.nextElement()).getName();            
        System.out.println("第"+x+"串口"+test_buffer[x]);
        if((test_buffer[x]==null)){
            x--;                
            break;
        }
    }

    test_1=new String[x];
    for(int j=0;j<x;j++){
        test_1[j]=test_buffer[j+1];
        System.out.println("第"+j+"串口:"+test_1[j]);
    }

    第1串口COM1

第2串口COM2
第3串口LPT1
第4串口LPT2
第0串口:COM1
第1串口:COM2
第2串口:LPT1
第3串口:LPT2
第1串口COM1
第2串口COM2
第3串口LPT1
第4串口LPT2
第0串口:COM1
第1串口:COM2
第2串口:LPT1
第3串口:LPT2
第1串口COM1
第2串口COM2
第3串口LPT1
第4串口LPT2
第0串口:COM1
第1串口:COM2
第2串口:LPT1
第3串口:LPT2
第1串口COM1
第2串口COM2
第3串口LPT1
第4串口LPT2
第0串口:COM1
第1串口:COM2
第2串口:LPT1
第3串口:LPT2
第1串口COM1
第2串口COM2
第3串口LPT1
第4串口LPT2
第0串口:COM1
第1串口:COM2
第2串口:LPT1
第3串口:LPT2

k,分析一下你的程序,首先看到第一个第0串口:COM1,就知道x=4
你的规律是1~4,0~3打印了4次,先让不是这个程序造成的,你外面的程序调用这段调用了5次

首先你这打印的就有问题,System.out.println("第"+j+"串口:"+test_1[j]);你怎么知道是上面的还是下面的?都没有个区分...把输出稍微该的出入下,好辨认是上面打印的还是下面打印的...