2017-07-28 59 views
-3

我最近在閱讀其他人的腳本時遇到過這個問題。一個簡短的例子如下: 說,我們需要輸入並存儲在變種A和B,該方案如下:爲什麼這個想法在使用while循環。這是微不足道的?

int ok; 
ok = false; 
while(!ok){ 
//ask input for A 
//ask input for B 
ok = true; 
} 

我明白就是了,但爲什麼是必要的這個計劃?我只能「請求A和B的輸入」。

+1

讓'ok'成爲'bool'似乎更直觀。 –

+1

接受輸入時可能有錯誤檢查。檢查循環體中是否有「continue」語句。 –

+0

上面的代碼與'do {...} while(false);'相同,''我想你忘記了包含代碼的重要部分,例如if語句。 –

回答

2

但爲什麼這個方案是必要的?

這是沒有必要的。

我可以只有「詢問A和B的輸入」。

你當然可以。

但是,如果用戶給你的輸入沒有用(例如:你問用戶的年齡,他們鍵入「馬」),那麼你可能會想再次問。允許重新嘗試輸入通常是一個有用的功能。用於重複一段程序的規範控制結構是一個循環。

但是,您的示例程序無條件地設置了ok,所以在這種情況下,循環確實沒有用處。只有在輸入確定之前必須傳遞某種形式的驗證時,循環纔有意義。

+0

謝謝,這是我正在尋找的答案。 –

+0

在循環體中有輸入驗證。我認爲即使我不使用循環來允許重試功能,它也會在那裏。現在我學會了保持這個循環的重要性。 –

1

當您省略的代碼中沒有檢查時,但您在整個地方看到相同的構造時,則是複製&粘貼僞影。

有人有一段代碼正在讀取輸入並驗證它,然後將代碼複製到其他地方,刪除了驗證位,並將其餘部分保留原樣。然後他們複製&將該代碼粘貼到所有地方。

以我的經驗,這經常發生。

+0

不,我是一個編程新手,我正在審查的代碼,我相信是優雅的傑作,否則我不會認真對待它,並問這樣的問題....感謝您的建議。 –

相關問題