2013-10-06 36 views
2

我需要創建一個基於用戶輸入的單鏈表,它添加到列表的前面並基於用戶輸入。我已經完成了程序,但我由於某種原因,運行在一個較小的部分空白與用戶輸入的位置:更好的方式來擺脫while循環? C

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

我知道有一種更好的方式來寫這篇文章,即使它不正確事情。如果我沒有在while循環中使用IF語句,它會將「-1」加到列表中,我不希望那樣做。所以這段代碼有效,但我覺得它應該寫成不同。我搞砸了不同的循環,但現在無法想到它。提前致謝。

+0

使用'goto'。 Hur hur hur –

+0

我希望有一種方法來downvote評論...(或者他正在諷刺 – texasbruce

+0

@texasbruce「* hur hur hur *」應該是一個提示(或者*你*也是諷刺嗎?) :-p – syam

回答

4

能使用comma operator,這將是整齊。

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

'Comma operator'? – Codecat

+0

@AngeloGeels查看我更新的鏈接 – billz

+1

不應該是'while(cout <<「輸入一個數字:」,cin >> numInput && numInput!= -1)'? – LihO

2

我想你的意思是:

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

ahhh只是需要移動東西...我知道它會很簡單,我不知道我是怎麼忘記的。猜猜我需要做的簡單的東西之前我有幾個啤酒,非常感謝大家,總是非常有幫助。 – Tyler

3
break; 

是你在找什麼?