2

我需要根据用户输入创建一个单链表,该单链表添加到列表的前面并基于用户输入。我已经完成了这个程序,但由于某种原因,我在一个较小的部分上运行一个空白,用户在这里输入:

    while(numInput != -1)
{
    cout << "Enter a number: ";
    cin >> numInput;
    if(numInput != -1)
    {
        theList->addToHead(numInput);
    }
}

我知道有更好的方法来写这个,即使它做了正确的事情。如果我在 while 循环中没有 IF 语句,它会将“-1”添加到列表中,我不希望这样。所以这段代码有效,但我觉得应该用不同的方式编写。我搞砸了不同的循环,但现在想不起来。提前致谢。

4

3 回答 3

4

可以使用comma operator,会很整洁。

while(cout << "Enter a number: ", cin >> numInput && numInput != -1)
{
    theList->addToHead(numInput);
}
于 2013-10-06T00:21:19.010 回答
3
break;

那是你要找的吗?

于 2013-10-06T00:22:07.403 回答
2

我想你的意思是:

std::cout << "Enter a number: ";
while (std::cin >> numInput && numInput != -1) {
    theList->addToHead(numInput);
    std::cout << "Enter a number: ";
}
于 2013-10-06T00:20:05.143 回答