none
vb程式語言...只能顯示出第一行 RRS feed

  • 問題

  • 為什麼我執行時只能顯示出"請輸入顯示一整數:"....其他的都無法顯示出來...是哪裡出錯了

    Module Module1

        Sub Main()
            Dim num As Integer
            Dim str As String
            Dim char1 As Char
            Dim bool1 As Boolean
            Dim bool2 As Boolean
            Dim day As Date

            Console.Write("請輸入一整數:")
            num = Console.ReadLine()
            Console.Write("請輸入一字串:")
            str = Console.ReadLine()
            Console.Write("請輸入一字元:")
            char1 = Console.ReadLine()
            Console.Write("請輸入第一個布林值:")
            bool1 = Console.ReadLine()
            Console.Write("請輸入第二個布林值:")
            bool2 = Console.ReadLine()
            Console.Write("請輸入一日期:")
            day = Console.ReadLine()

            Console.WriteLine()
            Console.WriteLine()
            Console.WriteLine("你所輸入的整數為:{0}", num)
            Console.WriteLine(" 字串為:{0}", str)
            Console.WriteLine(" 字元為:{0}", char1)
            Console.WriteLine(" 第一個布林值:{0}", bool1)
            Console.WriteLine(" 第二個布林值:{0}", bool2)
            Console.WriteLine(" 日期為:{0}", day)
            Console.Read()
        End Sub

    End Module

    2011年9月28日 上午 11:58

解答

所有回覆

  • 按個Enter就會有第二行了
    2011年9月28日 下午 12:02
  • 哪裏按enter..我一值搞好久ㄋㄟ

     

    2011年9月28日 下午 12:08
  • num = Console.ReadLine()

    這行是你寫的,你自己不知道意思嗎?

     

    http://msdn.microsoft.com/zh-tw/library/system.console.readline(v=vs.80).aspx

    2011年9月28日 下午 12:20
  • 不過執行到一半都會出現

    從字串 "" 至型別 'Integer' 的轉換是無效的。

    或是

    從字串 "" 至型別 'Date' 的轉換是無效的。

    怎麼會這樣呢??

    2011年9月28日 下午 12:41
  • 不懂ㄋㄟ..我是新手

    到我的生日顯示出來之後後面就無法顯示...跑出從字串 "" 至型別 'Date' 的轉換是無效的。

    Module Module1

        Sub Main()
            Dim sc As String
            Dim ma As String
            Dim cl As String
            Dim man As String
            Dim num As String
            Dim sex As String
            Dim bir As Date

            Console.Write("請輸入你就讀的學校:")
            sc = Console.ReadLine
            Console.Write("請輸入妳就讀的科系:")
            ma = Console.ReadLine
            Console.Write("請輸入你就讀的班級:")
            cl = Console.ReadLine
            Console.Write("請輸入你的姓名:")
            man = Console.ReadLine
            Console.Write("請輸入你的學號:")
            num = Console.ReadLine
            Console.Write("請輸入你的性別:")
            sex = Console.ReadLine
            Console.Write("請輸入你的生日:")
            bir = Console.ReadLine

            Console.WriteLine()
            Console.WriteLine()
            Console.WriteLine("你所就讀的學校為:{0}", sc)
            Console.WriteLine("          科系為:{0}", ma)
            Console.WriteLine("          班級為:{0}", cl)
            Console.WriteLine("你的姓名為:{0}", man)
            Console.WriteLine("    學號為:{0}", num)
            Console.WriteLine("    性別為:{0}", sex)
            Console.WriteLine("    生日為:{0}", bir)
            Console.Read()
        End Sub

    End Module

    2011年9月28日 下午 12:55
  • 1. 由於你的程式沒有做任何型別轉換防呆判斷,因此輸入格式不符時就會有問題

    2. 當出現 請輸入你的生日:輸入 西元年四碼/月/日 例如 2010/10/10


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年9月28日 下午 01:01
    版主
  • 不懂ㄋㄟ..我是新手

    到我的生日顯示出來之後後面就無法顯示...跑出從字串 "" 至型別 'Date' 的轉換是無效的。

    Module Module1

        Sub Main()
            Dim sc As String
            Dim ma As String
            Dim cl As String
            Dim man As String
            Dim num As String
            Dim sex As String
            Dim bir As Date

            Console.Write("請輸入你就讀的學校:")
            sc = Console.ReadLine
            Console.Write("請輸入妳就讀的科系:")
            ma = Console.ReadLine
            Console.Write("請輸入你就讀的班級:")
            cl = Console.ReadLine
            Console.Write("請輸入你的姓名:")
            man = Console.ReadLine
            Console.Write("請輸入你的學號:")
            num = Console.ReadLine
            Console.Write("請輸入你的性別:")
            sex = Console.ReadLine
            Console.Write("請輸入你的生日:")
            bir = Console.ReadLine

            Console.WriteLine()
            Console.WriteLine()
            Console.WriteLine("你所就讀的學校為:{0}", sc)
            Console.WriteLine("          科系為:{0}", ma)
            Console.WriteLine("          班級為:{0}", cl)
            Console.WriteLine("你的姓名為:{0}", man)
            Console.WriteLine("    學號為:{0}", num)
            Console.WriteLine("    性別為:{0}", sex)
            Console.WriteLine("    生日為:{0}", bir)
            Console.Read()
        End Sub

    End Module


    把Dim bir As Date

    也改成Dim bir As String

    如果要檢查日期是否輸入格式正確請參考:

    Module Module1
    
        Sub Main()
            Dim sc As String
            Dim ma As String
            Dim cl As String
            Dim man As String
            Dim num As String
            Dim sex As String
            Dim bir As String
    
            Console.Write("請輸入你就讀的學校:")
            sc = Console.ReadLine()
            Console.Write("請輸入妳就讀的科系:")
            ma = Console.ReadLine()
            Console.Write("請輸入你就讀的班級:")
            cl = Console.ReadLine()
            Console.Write("請輸入你的姓名:")
            man = Console.ReadLine()
            Console.Write("請輸入你的學號:")
            num = Console.ReadLine()
            Console.Write("請輸入你的性別:")
            sex = Console.ReadLine()
            
    
    
    
            Console.Write("請輸入你的生日:")
            bir = Console.ReadLine()
    
            Dim dt As DateTime
            If (DateTime.TryParse(bir, dt) = False) Then
                Console.WriteLine("日期格式有誤")
            End If
    
    
    
    
    
    
            Console.WriteLine()
            Console.WriteLine()
            Console.WriteLine("你所就讀的學校為:{0}", sc)
            Console.WriteLine("          科系為:{0}", ma)
            Console.WriteLine("          班級為:{0}", cl)
            Console.WriteLine("你的姓名為:{0}", man)
            Console.WriteLine("    學號為:{0}", num)
            Console.WriteLine("    性別為:{0}", sex)
            Console.WriteLine("    生日為:{0}", bir)
            Console.Read()
        End Sub
    
    
    End Module
    
    


    Shadowと愉快なコード達
    2011年9月28日 下午 01:04
  • 不過執行到一半都會出現

    從字串 "" 至型別 'Integer' 的轉換是無效的。

    或是

    從字串 "" 至型別 'Date' 的轉換是無效的。

    怎麼會這樣呢??

    你應該連自己在寫什麼都沒搞懂吧 ?

    ex:

    Console.Write("請輸入一整數:")
            num = Console.ReadLine()

    這樣表示它會先顯示一段文字 "請輸入一整數:" , 接著它會等待你的輸入, 並將輸入的文字傳給num變數, 直到你按換行符號(也就是Enter)為止

    來看看你的num怎麼宣告

    Dim num As Integer

    由於num是宣告為Integer, 在.NET中 Integer 意為 32位元整數, 所以當你在輸入時只按了個Enter, 要拿啥來轉成整數 ?

    建議你找本書, 好好的把變數與型別的部份讀清楚,不要覺得枯燥而跳過, 這對於寫程式而言是一件非常基本的事情.

     

     

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年9月29日 上午 12:44
    版主