Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 非常简单的if语句,用VB制作控制台应用程序_Vb.net_If Statement_Console Application - Fatal编程技术网

Vb.net 非常简单的if语句,用VB制作控制台应用程序

Vb.net 非常简单的if语句,用VB制作控制台应用程序,vb.net,if-statement,console-application,Vb.net,If Statement,Console Application,我认为在这里使用IF语句是错误的,不确定是否有更好的方法。该程序在选项1新闻中按我所希望的方式工作,但在选项2历史价格中无法按我所希望的方式工作 Module Module1 Dim ticker Sub Main() System.Console.WriteLine("Welcome") Module1.snd() End Sub Sub snd() System.Console.WriteLine("Pick a command:") System.Conso

我认为在这里使用IF语句是错误的,不确定是否有更好的方法。该程序在选项1新闻中按我所希望的方式工作,但在选项2历史价格中无法按我所希望的方式工作

Module Module1
Dim ticker
Sub Main()
    System.Console.WriteLine("Welcome")
    Module1.snd()
End Sub
Sub snd()
    System.Console.WriteLine("Pick a command:")
    System.Console.WriteLine("1) News")
    System.Console.WriteLine("2) Historical Prices/Volume")
    If System.Console.ReadLine = "1" Then Module1.News() : If System.Console.ReadLine = "2" Then Module1.hp()

End Sub
Sub News()
    System.Console.WriteLine("News, pick a command:")
    System.Console.WriteLine("1) OTCM")
    If System.Console.ReadLine = "1" Then
        System.Console.WriteLine("Give me ticker:")
        ticker = System.Console.ReadLine
        Process.Start("http://www.otcmarkets.com/stock/" + ticker + "/news")
        Module1.snd()
    End If
End Sub
Sub hp()
    System.Console.WriteLine("Historical Prices/Volume, pick a command:")
    System.Console.WriteLine("1) Google Finance")
    If System.Console.ReadLine = "1" Then
        System.Console.WriteLine("Give me ticker:")
        ticker = System.Console.ReadLine
        Process.Start("http://www.google.com/finance/historical?q=%3A" + ticker + "&ei=LWsXU9inBcj66gHZLA")
        Module1.snd()
    End If
End Sub

结束模块

如果调用Console.Readline,则控制台将等待用户每次输入一行。请尝试选择案例语句:

Sub snd()
  System.Console.WriteLine("Pick a command:")
  System.Console.WriteLine("1) News")
  System.Console.WriteLine("2) Historical Prices/Volume")    
  Select Case Console.Readline
     Case "1" : Module1.News()
     Case "2" : Module1.hp()
     Case Else : Module1.snd()
  End Select
End Sub
这将读取一行,然后切换到键入的案例。Case else处理所有不是1或2的内容,再次调用同一个子对象以等待新的输入

史蒂文: 您还可以将该行读入字符串变量,并使用If/Then/Else进行计算,如下所示:

Sub snd()
  System.Console.WriteLine("Pick a command:")
  System.Console.WriteLine("1) News")
  System.Console.WriteLine("2) Historical Prices/Volume")    
  Dim UserInput as String = Console.ReadLine
  If UserInput = "1" Then
    News()
  ElseIf UserInput = "2" Then
    Hp()
  Else
    snd()
  End If
End Sub

诀窍是一样的,您只需读取一行,然后计算并处理输入。

如果您调用Console.Readline,则Console将等待用户每次输入一行。请尝试选择案例语句:

Sub snd()
  System.Console.WriteLine("Pick a command:")
  System.Console.WriteLine("1) News")
  System.Console.WriteLine("2) Historical Prices/Volume")    
  Select Case Console.Readline
     Case "1" : Module1.News()
     Case "2" : Module1.hp()
     Case Else : Module1.snd()
  End Select
End Sub
这将读取一行,然后切换到键入的案例。Case else处理所有不是1或2的内容,再次调用同一个子对象以等待新的输入

史蒂文: 您还可以将该行读入字符串变量,并使用If/Then/Else进行计算,如下所示:

Sub snd()
  System.Console.WriteLine("Pick a command:")
  System.Console.WriteLine("1) News")
  System.Console.WriteLine("2) Historical Prices/Volume")    
  Dim UserInput as String = Console.ReadLine
  If UserInput = "1" Then
    News()
  ElseIf UserInput = "2" Then
    Hp()
  Else
    snd()
  End If
End Sub

诀窍是一样的,你只需读一行,然后计算并处理输入。

太棒了,Jens!太完美了!非常感谢:+1,如果您还展示了如何在没有选择案例(如if/ElseIf或多个if语句)的情况下正确地完成此操作。更好的是:我同意选择/案例是使用此语句的方式,但由于OP最有可能是初学者,因此您离原始示例越近,这将更有助于指出他们做错了什么。太棒了,詹斯!太完美了!非常感谢:+1,如果您还展示了如何在没有选择案例(如if/ElseIf或多个if语句)的情况下正确地完成此操作。更好的是:我同意选择/案例是使用此语句的方式,但由于OP最有可能是初学者,因此您离原始示例越近,这将更有助于指出他们做错了什么。