一種if
語句,例如:爲什麼`while'循環從不檢查用戶輸入,而`if`語句呢?
if first_name || first_name.length == 0
puts "You can't leave the first name blank, try again: "
first_name = gets
end
功能正常,因爲它要求用戶輸入,並且當由不進入任何輸入(包括空格)進行測試,它輸出錯誤消息,接着提示用戶輸入,隨後,然而,當我嘗試使用相同的while
循環:
while first_name || first_name.length == 0
puts "You can't leave the first name blank, try again: "
first_name = gets
end
循環不正常。
迴路執行以下操作代替:
•打印上述(OK)的錯誤消息
•請求用戶輸入(OK)
•一旦用戶輸入被接收到,則循環再次執行(錯誤)。
它不測試用戶(現在正確)輸入的長度,然後允許應用程序的其餘部分執行其任務。
我也試過unless
,nil?
等等,用循環內部的if
語句糾正循環的錯誤,但沒有成功。我認爲while
循環會在糾正錯誤後再次評估first_name
,並發現其長度不再爲零,但事實證明情況並非如此。在Java中,要說某事不等於別的東西(例如,在字符串方面),我可以在變量名前面使用!
。我可以在Ruby中做到這一點嗎?
請描述什麼是「作品」是指在提到的第一個例子。具體一點:「當(某些條件)然後我執行這個代碼時,它(不管它是什麼),這是正確的。」對其他例子也一樣。要非常具體,並且記得解釋它的作用,以及它應該做什麼。 –
嗨,韋恩,我編輯了這個問題,以便更容易理解。進一步的挖掘讓我弄清楚爲什麼這個循環以它的方式進行。浪費你的時間道歉(和其他人在這裏)。 – Paul