继续说要按任意键继续,我重新检查了一下,然后得知 但仍然没有运气 请帮助我纠正此问题,并且主子菜单可以为空吗??? Num和Num 1是全局变量
Module Module1
Dim Num, Num1 As Integer
Sub Menu()
Dim choice As Char
While choice <> "Q" And choice <> "q"
Console.Clear()
Console.WriteLine("Simple Maths Calculator")
Console.WriteLine()
Console.WriteLine("enter choice: ")
Console.WriteLine("enter (a) for add")
Console.WriteLine("enter (b) for subtract")
Console.WriteLine("enter (q) for quit")
choice = Console.ReadLine()
If choice <> "Q" And choice <> "q" Then
TwoNumber()
End If
If choice = "A" Or "a" Then
Add()
ElseIf choice = "B" Or "b" Then
Subtract()
End If
End While
End Sub
Sub Add()
Console.WriteLine("the solution is: " & Num + Num1)
Console.ReadLine()
End Sub
Sub Subtract()
Console.WriteLine("the solution is: " & Num - Num1)
Console.ReadLine()
End Sub
Sub TwoNumber()
Console.WriteLine("enter first number")
Num = Console.ReadLine()
Console.WriteLine("enter second number")
Num1 = Console.ReadLine()
End Sub
Sub Main()
Menu()
End Sub
最终模块
答案 0 :(得分:0)
除了确保Main()调用Menu()之外,您的大多数问题还来自不正确的数据类型转换。具体来说,将用户的ReadLine()输入字符串转换为整数并检查Char是否相等。在比较.Net中的两个内容时,通常希望您使用“ OrElse”或“ AndAlso”,它们的行为有所不同,并且(至少我)期望通常的And / Or表现如何。但是,如果您正确检查了字符,则甚至不需要,并且/或者在这种情况下。在代码文件的顶部添加“ Option Strict On”和“ Option Explicit On”还有助于及早指出这些错误,以便可以解决它们,并且始终强烈键入代码是一个好主意。防止发生您遇到的转换错误,并帮助确保代码不会以不可预测的方式运行。随着您经验的积累,错误处理也是确保用户输入的数字是一个好主意,因为即使进行了更改,如果用户在TwoNumber()中输入了“ J”或“ 1.1”而不是数字,程序会崩溃或丢失小数点:(但是,现在,对类型转换和比较进行了一些简单的更改,代码看起来像这样,应该可以正常运行
Option Strict On
Option Explicit On
Module Module1
Dim Num, Num1 As Integer
Sub Menu()
Dim choice As Char
While Not Char.ToLower(choice).Equals("q"c) 'check if choice is equal to Q/q
Console.Clear()
Console.WriteLine("Simple Maths Calculator")
Console.WriteLine()
Console.WriteLine("enter choice: ")
Console.WriteLine("enter (a) for add")
Console.WriteLine("enter (b) for subtract")
Console.WriteLine("enter (q) for quit")
choice = CType(Console.ReadLine(), Char)
If Not Char.ToLower(choice).Equals("q"c) Then
TwoNumber()
End If
If Char.ToLower(choice).Equals("a"c) Then
Add()
ElseIf Char.ToLower(choice).Equals("b"c) Then
Subtract()
End If
End While
End Sub
Sub Add()
Console.WriteLine("the solution is: " & Num + Num1)
Console.ReadLine()
End Sub
Sub Subtract()
Console.WriteLine("the solution is: " & Num - Num1)
Console.ReadLine()
End Sub
Sub TwoNumber()
Console.WriteLine("enter first number")
Num = CInt(Console.ReadLine()) 'Convert the inputted string into an integer
Console.WriteLine("enter second number")
Num1 = CInt(Console.ReadLine()) 'Convert the inputted string into an integer
End Sub
Sub Main()
Menu()
End Sub
End Module