我最近在閱讀其他人的腳本時遇到過這個問題。一個簡短的例子如下: 說,我們需要輸入並存儲在變種A和B,該方案如下:爲什麼這個想法在使用while循環。這是微不足道的?
int ok;
ok = false;
while(!ok){
//ask input for A
//ask input for B
ok = true;
}
我明白就是了,但爲什麼是必要的這個計劃?我只能「請求A和B的輸入」。
我最近在閱讀其他人的腳本時遇到過這個問題。一個簡短的例子如下: 說,我們需要輸入並存儲在變種A和B,該方案如下:爲什麼這個想法在使用while循環。這是微不足道的?
int ok;
ok = false;
while(!ok){
//ask input for A
//ask input for B
ok = true;
}
我明白就是了,但爲什麼是必要的這個計劃?我只能「請求A和B的輸入」。
但爲什麼這個方案是必要的?
這是沒有必要的。
我可以只有「詢問A和B的輸入」。
你當然可以。
但是,如果用戶給你的輸入沒有用(例如:你問用戶的年齡,他們鍵入「馬」),那麼你可能會想再次問。允許重新嘗試輸入通常是一個有用的功能。用於重複一段程序的規範控制結構是一個循環。
但是,您的示例程序無條件地設置了ok
,所以在這種情況下,循環確實沒有用處。只有在輸入確定之前必須傳遞某種形式的驗證時,循環纔有意義。
謝謝,這是我正在尋找的答案。 –
在循環體中有輸入驗證。我認爲即使我不使用循環來允許重試功能,它也會在那裏。現在我學會了保持這個循環的重要性。 –
當您省略的代碼中沒有檢查時,但您在整個地方看到相同的構造時,則是複製&粘貼僞影。
有人有一段代碼正在讀取輸入並驗證它,然後將代碼複製到其他地方,刪除了驗證位,並將其餘部分保留原樣。然後他們複製&將該代碼粘貼到所有地方。
以我的經驗,這經常發生。
不,我是一個編程新手,我正在審查的代碼,我相信是優雅的傑作,否則我不會認真對待它,並問這樣的問題....感謝您的建議。 –
讓'ok'成爲'bool'似乎更直觀。 –
接受輸入時可能有錯誤檢查。檢查循環體中是否有「continue」語句。 –
上面的代碼與'do {...} while(false);'相同,''我想你忘記了包含代碼的重要部分,例如if語句。 –