Vb.net 无效值未中断,结果未显示

Vb.net 无效值未中断,结果未显示,vb.net,while-loop,Vb.net,While Loop,我的VB.NET程序给了我两个错误: 当我输入负值或0时,它不会中断 它没有显示总值 有人能帮我解决这个问题吗 Enter deposit amount: 300 Another (y or n)? y Enter deposit amount: -1 Amount cannot be zero or negative. 我的代码: Module Module1 Sub Main() Dim userResponse As Char Dim depositAmount A

我的VB.NET程序给了我两个错误:

  • 当我输入负值或0时,它不会中断
  • 它没有显示总值
  • 有人能帮我解决这个问题吗

    Enter deposit amount: 300
    Another (y or n)? y
    Enter deposit amount: -1
    Amount cannot be zero or negative.
    
    我的代码:

     Module Module1
    
     Sub Main()
        Dim userResponse As Char
        Dim depositAmount As Decimal
        Dim totalDeposits As Decimal
    
        Dim depositCount As Integer
        Dim averageDeposit As Decimal
        depositCount = 0
        totalDeposits = 0
    
        While Not (userResponse = "n")
            Console.WriteLine("Enter Desposit Amount:")
            If (depositAmount < 0 And depositAmount = 0) Then
                Console.WriteLine("Amount cannot be zero or negative.")
            Else
                depositAmount = Console.ReadLine()
    
    
    
                Console.WriteLine("Another (y or n)?")
                userResponse = Console.ReadLine()
    
    
    
                totalDeposits = totalDeposits + depositAmount
                depositCount = depositCount + 1
                averageDeposit = totalDeposits / depositCount
    
            End If
        End While
    
    
        Console.WriteLine("  Total deposits:               " + totalDeposits.ToString)
        Console.WriteLine("  Number of deposits:           " + depositCount.ToString)
        Console.WriteLine("Average deposit:     " + averageDeposit.ToString)
    
    End Sub
    
    End Module
    
    模块1
    副标题()
    Dim userResponse作为Char
    将存款金额设置为十进制
    将存款总额设置为十进制
    将存款计数设置为整数
    Dim Average存款为十进制
    存款计数=0
    存款总额=0
    而不是(userResponse=“n”)
    Console.WriteLine(“输入存款金额:”)
    如果(存款金额<0且存款金额=0),则
    Console.WriteLine(“金额不能为零或负。”)
    其他的
    depositAmount=Console.ReadLine()
    Console.WriteLine(“另一个(y或n)?”)
    userResponse=Console.ReadLine()
    存款总额=存款总额+存款金额
    存款计数=存款计数+1
    Average存款=存款总额/存款计数
    如果结束
    结束时
    Console.WriteLine(“存款总额:+totalDeposits.ToString”)
    Console.WriteLine(“存款数量:+depositCount.ToString”)
    Console.WriteLine(“平均存款:+averageDeposit.ToString”)
    端接头
    端模块
    
    您可以尝试:如果(存款金额<0或存款金额=0),从我看到的值不能同时为负和零

    您可以尝试:如果(存款金额<0或存款金额=0),从我看到的值不能同时为负和零

    当我输入负值或0时,它不会中断。 它没有显示总值

    您在编码时未启用选项,并试图将字符串隐式转换为十进制。此外,在用户输入存款金额之前,您还要检查存款金额

    试着这样做:

     Module Module1
    
     Sub Main()
        Dim userResponse As Char
        Dim depositAmount As Double
        Dim totalDeposits As Double
    
        Dim depositCount As Integer
        Dim averageDeposit As Double
        depositCount = 0
        totalDeposits = 0
    While Not (userResponse = "n")
        Console.WriteLine("Enter Desposit Amount:")
        'Attempt to convert readline to double. if it's successful GoodResponse
        'is true and depositamount has the value entered, otherwise it's 0
        Dim GoodResponse As Boolean = Double.TryParse(Console.Readline(), depositAmount)
        If Not GoodResponse OrElse depositAmount <=0 Then
            depositAmount = 0
            Console.WriteLine("Amount must be a number and cannot be zero or negative.")
        End If
    
            Console.WriteLine("Another (y or n)?")
            userResponse = Console.ReadLine()
    
    
    
            totalDeposits = totalDeposits + depositAmount
            depositCount = depositCount + 1
            averageDeposit = totalDeposits / depositCount
    
        End If
    End While
    
    模块1
    副标题()
    Dim userResponse作为Char
    存款金额加倍
    存款总额为双倍
    将存款计数设置为整数
    平均存款为双倍
    存款计数=0
    存款总额=0
    而不是(userResponse=“n”)
    Console.WriteLine(“输入存款金额:”)
    '尝试将readline转换为double。如果成功的话,你会有很好的反应
    '为true,并且存款金额具有输入的值,否则为0
    Dim GoodResponse As Boolean=Double.TryParse(Console.Readline(),depositAmount)
    如果没有,请回复或支付存款金额
    当我输入负值或0时,它不会中断。
    它没有显示总值

    您在编码时未启用选项,并试图将字符串隐式转换为十进制。此外,在用户输入存款金额之前,您还要检查存款金额

    试着这样做:

     Module Module1
    
     Sub Main()
        Dim userResponse As Char
        Dim depositAmount As Double
        Dim totalDeposits As Double
    
        Dim depositCount As Integer
        Dim averageDeposit As Double
        depositCount = 0
        totalDeposits = 0
    While Not (userResponse = "n")
        Console.WriteLine("Enter Desposit Amount:")
        'Attempt to convert readline to double. if it's successful GoodResponse
        'is true and depositamount has the value entered, otherwise it's 0
        Dim GoodResponse As Boolean = Double.TryParse(Console.Readline(), depositAmount)
        If Not GoodResponse OrElse depositAmount <=0 Then
            depositAmount = 0
            Console.WriteLine("Amount must be a number and cannot be zero or negative.")
        End If
    
            Console.WriteLine("Another (y or n)?")
            userResponse = Console.ReadLine()
    
    
    
            totalDeposits = totalDeposits + depositAmount
            depositCount = depositCount + 1
            averageDeposit = totalDeposits / depositCount
    
        End If
    End While
    
    模块1
    副标题()
    Dim userResponse作为Char
    存款金额加倍
    存款总额为双倍
    将存款计数设置为整数
    平均存款为双倍
    存款计数=0
    存款总额=0
    而不是(userResponse=“n”)
    Console.WriteLine(“输入存款金额:”)
    '尝试将readline转换为double。如果成功的话,你会有很好的反应
    '为true,并且存款金额具有输入的值,否则为0
    Dim GoodResponse As Boolean=Double.TryParse(Console.Readline(),depositAmount)
    
    如果没有很好的回复或者没有存款金额非常感谢问题解决了:)非常感谢问题解决了:)