2013-05-31 82 views
-3

我需要用下面的代碼幫助,因爲它不工作:運行時錯誤:從字符串「Y」鍵入「布爾」轉換無效

Do While answer = "Y" Or "y" 
     num = "0" 
     Console.WriteLine("Enter number") 
     num = Console.ReadLine 
     total = total + num 
     Console.WriteLine("Do you want to continue Y/N") 
     answer = Console.ReadLine 
    Loop 
+4

在問你的問題之前,你有[徹底搜索過答案](http://stackoverflow.com/search)嗎?分享你的研究有助於每個人告訴我們你發現了什麼,以及它爲什麼不符合你的需求。這表明你已經花時間去嘗試幫助自己,它使我們避免重申明顯的答案,最重要的是它有助於你獲得更具體和相關的答案!另請參閱[如何問](http://stackoverflow.com/questions/how-to-ask),[你有什麼嘗試?](http://whathaveyoutried.com)和[什麼是一個很好的問題?] (http://tinyurl.com/so-hints) –

+0

@DanPichelman是的,我已經徹底搜索一個答案,找不到任何東西,爲什麼我發佈了這個問題。 – Logan

+2

定義「不工作」 –

回答

5

在VB.NET,邏輯和位運算符具有的優先級低於比較運算符所以要求

Do While answer = "Y" or "y" 

相同詢問

Do While (answer = "Y") or "y" 

對於該第一C因此,answer = "Y"可以爲真或假,對於第二種情況,"y"既不是真也不是假 - 它是一個字符串,所以該陳述沒有意義。

你的第二個測試應該包括變量測試。就像這樣:

Do While answer = "Y" Or answer = "y" 

answer = "y"將由編譯wheter表達式爲true,或者不能被解釋爲TrueFalse

這就像是問:「y是我的answer變量裏面的值嗎?」

只要試圖將y轉換爲布爾值(True或False),就像您現在正在執行的操作一樣,將導致轉換錯誤,如您所得到的錯誤。

相關問題