看板 Visual_Basic 關於我們 聯絡資訊
小弟是VB 2005初學 在練習一題題目為: 輸入A,B,C三角形的三個邊長,並判斷是何種三角形。 1. A^2=B^2+C^2為直角三角形。 2. A^2>B^2+C^2為鈍角三角形。 3. A^2<B^2+C^2為銳角三角形。 我的程式碼如下: ----------------------------------------------------------------------------- Module Module1 Sub Main() Dim a, b, c, x As Single, str1 As String Console.WriteLine("讓我們來看看這是個什麼樣的三角形吧~") Console.Write("請輸入三角形的長邊:") a = Console.ReadLine() Console.Write("請輸入三角形的一個短邊:") b = Console.ReadLine() Console.Write("請輸入三角形的另一個短邊:") c = Console.ReadLine() x = b ^ 2 + c ^ 2 If x = a ^ 2 Then str1 = "直角三角形" ElseIf x < a ^ 2 Then str1 = "鈍角三角形" ElseIf x > a ^ 2 Then str1 = "銳角三角形" End If Console.WriteLine("三邊長{0},{1},{2}的三角形為", a, b, c & str1) Console.Read() End Sub End Module ---------------------------------------------------------------------------- 我現在卡在第20行的最後那個str1,不知道為什麼出錯,請前輩們指點一下迷津 以下是對這個錯誤的警告描述: 變數 'str1' 已在指派值之前使用。可能會在執行階段產生 null 參考例外狀況。 還有這題可以用哪些結構去做呢? 先謝謝喔^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.231.112.243
dong2:呃...我才學第二天...程度太爛不要罵我>"< 08/09 01:03
dong2:還有~我真的看不懂那串警告是要告訴我什麼事~"~a 08/09 01:04
york47c:IF~Elseif~少了Else 最後一個條件用Else 不然最後補個Else 08/09 01:20
york47c:ElseIf x < a ^ 2 Then 改成 Else 08/09 01:23
dong2:可以了~謝謝^^ 08/09 01:30
dong2:可是最後輸出結果怎麼會跑出三邊長x,x,x為XX三角形的三角形 08/09 01:31
dong2:~"~ str1這個字串要怎麼改到句子的最後@"@a 08/09 01:32
dong2:生於 mscorlib.dll 08/09 01:34
dong2:第一個可能發生的例外狀況類型 'System.FormatException' 發 08/09 01:34
dong2:上兩行顛倒,改過之後在即時視窗出現的 08/09 01:34
dong2:這樣是什麼情形呀? 08/09 01:35
york47c:你寫成c & str1;str1會跟在c後面一起print,全轉成字串吧 08/09 02:35
york47c:"三邊長" + Str(a) + "," + Str(b) + "," + Str(c) + "的 08/09 02:36
york47c:"的三角形" & str1 08/09 02:36
我把最後輸出的那一行改成 Console.WriteLine("三邊長{0},{1},{2}的三角形為 " & str1, a , b , c) 就成功了... 原來要連接的字串要先接上 然後a,b,c這三個變數再擺在句子最後面補述 對了~york47c大大 你的最後三行推文我有試過,不過它說Str(x)還有","錯誤耶 但是還是謝謝你啦~幫我解決了else的問題^^ 只是我還是不知道這兩句的意思......~"~a 變數 'str1' 已在指派值之前使用。可能會在執行階段產生 null 參考例外狀況。 第一個可能發生的例外狀況類型 'System.FormatException' 發生於 mscorlib.dll ※ 編輯: dong2 來自: 125.231.112.243 (08/09 03:22) ※ 編輯: dong2 來自: 125.231.124.29 (08/09 21:12)
fumizuki:變數宣告要給予初始值... 08/11 19:47