2014-01-21 27 views
0

控制檯似乎保持打印值的重複數字「1」 也許這是因爲我不是在循環中正確的值遞增? 或者我宣佈在不正確的位置的變量值的Visual Basic - 1-100與那些被2整除和3

Dim divx As Integer 
    Dim divy As Integer 

    divx = 1 

    Do While divx < 100 

     divy = divx Mod 2 

     If Not (divy = 0) Then 
      Console.WriteLine(divx) 
     Else 
      divx += 1 
     End If 

    Loop 

回答

0

如果你的目標只是列出可以被2和3整除的數字,這應該是最短的路線。只是想幫助:)如果2或3然後改變和或。

For x As Integer = 1 To 100 
    If (x Mod 2 = 0) And (x Mod 3 = 0) Then Console.WriteLine(x) 
Next x 

如果條件2和3而不是5那麼......

For x As Integer = 1 To 100 
    If (x Mod 2 = 0) And (x Mod 3 = 0) And Not (x Mod 5 = 0) Then Console.WriteLine(x) 
Next x 
+0

這是偉大的隊友,謝謝!我從來沒有意識到你可以設置一個整數從一個值到另一個值,爲我節省增值的麻煩。 – LyanR

+0

樂於幫助。如果你知道上限,建議使用For Loops。如果循環依賴於一個動態的數字,使用一段時間:) –

+0

嘗試第二個解決方案@ user3215444 :) –

0
Do While divx < 100 

    If Not (divx Mod 2 = 0) Then 
     Console.WriteLine("Divisible by 2: " & divx) 
    End If 

    If Not (divx Mod 3 = 0) Then 
     Console.WriteLine("Divisible by 3: " & divx) 
    End If 

    divx += 1 

Loop 
+2

他希望它被2整除**和** 3 :) – robnick

+0

當然,請注意,同一個數字可可以被2和3整除,因此該號碼將被打印兩次。 – Jonathan

+0

謝謝,但這並沒有給出正確的值。例如它說1可以被2整除。 – LyanR

2

是的,你是不是增加了,則可以省略Else

Do While divx < 100 
    divy = divx Mod 2 

    If Not (divy = 0) Then 
     Console.WriteLine(divx) 
    End If 
    divx += 1 
Loop 

但是,如果你也想要顯示可以被3整除的數字,您可以用這種方式修改循環:

Dim divx As Integer = 1 
Do While divx < 100 
    Dim isDivisableBy2Or3 = divx Mod 2 = 0 OrElse divx Mod 3 = 0 
    If isDivisableBy2Or3 Then 
     Console.WriteLine(divx) 
    End If 
    divx += 1 
Loop 
+0

偉大的夥伴!這很好...我自己用If規則犯了一個小錯誤....不應該在那裏,因爲我需要mod爲0才能顯示可以被2整除的值。非常感謝。 – LyanR