2016-09-02 17 views
0

私はビジュアルベーシックを学んでおり、 "halfまたはtriple plus one"の計算を行うためのシンプルなビジュアルな基本コンソールアプリケーションを作成しました。コンソールアプリケーションも動作しますが、ソリューションに到達するまでの総ループ数を数えて表示したい。ここに私のコードです:Visual Basicコンソールアプリケーションでループの総数を数えて出力する方法は?

Sub Main() 
    Dim n As Double 
    Console.WriteLine("Enter a starting number.") 
    n = Console.ReadLine() 

    Do While n <> 1 

     Do While n > 1 

      If n Mod 2 = 0 Then 
       n = n/2 
      Else 
       n = (n * 3) + 1 

      End If 
      Console.WriteLine(n) 
     Loop 
     If n = 1 Then 
      Console.WriteLine(
      n = Console.ReadLine() 
     End If 

    Loop 



    Console.ReadLine() 

End Sub 

私はカウントし、ループの数を表示する何かを見つけることができないようです。

+1

での最終的なコードの結果がループを通る各パスで、それをインクリメントし、カウンタ変数を追加します。 'n'を出力しているのと同じように、Console.WriteLineを使って出力します。 –

答えて

0

私はあなたを誤解していないよ場合は、問題がJという名前の新しい変数を導入解決し、

Sub Main() 
Dim n As Double 
Dim j as integer 
Console.WriteLine("Enter a starting number.") 
n = Console.ReadLine() 
j = 0 

Do While n <> 1 

    Do While n > 1 
     'Every Time i enter in the cicle, the "operation counter" increses by one 
     j = j + 1 

     If n Mod 2 = 0 Then 
      n = n/2 
     Else 
      n = (n * 3) + 1 

     End If 
     Console.WriteLine(n) 
    Loop 
    If n = 1 Then 
     Console.WriteLine(
     n = Console.ReadLine() 
    End If 

Loop 

Console.WriteLine("I make " & j & " operations to get here!") 
Console.ReadLine() 

End Sub 
0
Sub Main() 
     Dim n As Double 
     Console.Write("Enter a starting number: ") 
     n = Convert.ToDouble(Console.ReadLine()) 
     Console.WriteLine() 

     Dim loopsCounter As Integer = 0 

     Do While n > 0 
      Do While n > 1 
       loopsCounter += 1 

       If n Mod 2 = 0 Then 
        n = n/2 
       Else 
        n = (n * 3) + 1 
       End If 

       Console.WriteLine(n) 
      Loop 

      Console.WriteLine() 
      Console.WriteLine(String.Format("{0} loops to result.", loopsCounter)) 

      If n = 1 Then 
       Console.WriteLine() 
       Console.Write("Enter another number: ") 
       n = Convert.ToDouble(Console.ReadLine()) 
       loopsCounter = 0 
      End If 
     Loop 

     Console.ReadLine() 
    End Sub 
関連する問題