当前位置: 代码迷 >> QT开发 >> 代码换了个循环体就不起作用了解决方案
  详细解决方案

代码换了个循环体就不起作用了解决方案

热度:576   发布时间:2016-04-25 02:50:38.0
代码换了个循环体就不起作用了
    QList<QHostAddress> addresslist = QNetworkInterface::allAddresses();
    QList<QHostAddress>::iterator beginaddress = addresslist.begin();   
    QList<QHostAddress>::iterator endaddress = addresslist.end();

    for( ; beginaddress < endaddress; beginaddress++)                    //第一种方式
    {
        if((*beginaddress).protocol() == QAbstractSocket::IPv4Protocol &&
                       (*beginaddress) != QHostAddress::Null &&
                       (*beginaddress) != QHostAddress::LocalHost)
        {
           if((*beginaddress).toString().contains("127.0."))
           {
               continue;
           }
           QString line = (*beginaddress).toString();
           line.insert(0,QString());
           qDebug() << line << "\n";
           beginaddress++;
        }
    }


    do                                                                                                                         //第二种方式
    {
        if((*beginaddress).protocol() == QAbstractSocket::IPv4Protocol &&
                       (*beginaddress) != QHostAddress::Null &&
                       (*beginaddress) != QHostAddress::LocalHost)
        {
           if((*beginaddress).toString().contains("127.0."))
           {
               continue;
           }
           QString line = (*beginaddress).toString();
           line.insert(0,QString());
           qDebug() << line << "\n";
           beginaddress++;
        }
    }while(beginaddress != endaddress);


以上为两种方式查询全部IP并显示在终端上的代码。
第一种for语句起作用,但是第二种do while语句却没有作用。
请问这是怎么回事?
------解决思路----------------------
你不会两段代码同时都运行了吧
  相关解决方案