我正在尝试实现一个简单的while循环,但是对于我的一生,我无法弄清楚我所缺少的内容。我已经将currentuser初始化为-1

while(currentuser = -1){
    cout << "Enter user ID: ";
    cin >> id;
    currentuser = search(a, length, id);
}

我的搜索功能是这样的:
int search (User a[ ], int length, string userID){
    User u;
    string tempid;
    int templegnth; //I ignore length for now as I will use it later
    for(int i=0; i<50; i++){
        tempid = a[i].getID();
        templegnth = tempid.length();
        if((tempid == userID)){
            return i;
        }
    }
    return -1;


}

我知道这很简单,但答案现在让我无所适从。

最佳答案

=(赋值)运算符与==(相等)运算符不同。

该行:

while(currentuser = -1){

首先将-1分配给currentuser,然后检查currentuser是否具有非零值。情况总是如此(-1 != 0),因此循环永远不会结束。

您可能是这样说的:
while(currentuser == -1){

比较currentuser-1,并继续循环,只要该比较为真。

07-26 05:41
查看更多