2014-09-13 117 views
-1

我目前正在研究這個while循環,我只想在輸入處於我設置的定義範圍內時激活它。到目前爲止,我有這個,但它沒有按照我希望的方式工作。這是我相信錯誤的部分,因爲由於某種原因,即使我輸入的數字超出給定範圍>。>。如何在while循環中包含輸入值的限制?

while(result >= -10000 && result <= 10000) 

請注意,這是我的代碼只是一小部分,一旦我得到while循環這將是完整的語法正確:d/

+0

如果您認爲在'result'中輸入數字的代碼是相關的,那麼您就是對的。你怎麼知道*結果的實際價值是你認爲的結果,同樣重要的是,我們怎麼知道沒有看到代碼呢?這個表達式沒有什麼不對,但是如果'result'一旦超過它並進入循環體中就不會改變,你認爲它正在改變它,它將會無界限地循環(禁止'break'或'goto') 。 – WhozCraig 2014-09-13 03:12:34

+1

你的自信是沒有根據的。錯誤的部分當然是你沒有向我們展示的東西。值得注意的是,你沒有展示如何或何時設置結果。 – 2014-09-13 03:21:50

回答

2

你已經得到了while的語法循環完全正確,但條件的邏輯可能與您需要的邏輯相反:當result變爲無效時,您的循環將停止停止

典型的while用於輸入的迴路具有相反的條件:它在result有效時停止。此外,常見的「讀,直到它是正確的」循環使用do/while結構,像這樣:

do { 
    result = ... // read the input into result 
    ... 
} while (result < -10000 || result > 100000); 

這個循環的後置條件(result >= -10000 && result <= 10000),因爲這是需要循環停止迭代。因此,當result變爲有效時,循環停止,這是輸入循環試圖實現的。