Dim s As Integer
s = 5
Do
 If s Mod 2 = 0 Then
  s = s / 2
Else
  s = 3 * s + 1
End If
Select Case s
  Case s Mod 2 = 0
    k = k + 1
    Print k
  Case Else
    k = k + 2
    Print k
End Select
Loop Until s = 1print 值答案是2,4,6,8,10
可是我算出来的值是1,2,3,4,6
为什么在第一个Case s Mod 2 = 0 时候它明明是true的,但是却不走k=k+1 print k阿??

解决方案 »

  1.   

    Case s Mod 2 = 0 不要这样些啦用If语句,才2个分支,干吗用Case。
      

  2.   

    一定要用slelect case的。 没办法。考试的题目
    算不出正确的答案,,郁闷中。。
      

  3.   

    Select Case s Mod 2 
    Case  0
        k = k + 1
        Print k
      Case Else
        k = k + 2
        Print k
    End Select
      

  4.   


    Dim s As Integer
    s = 5
    Do
     If s Mod 2 = 0 Then
      s = s / 2
    Else
      s = 3 * s + 1
    End If
    Select Case s Mod 2
      Case 0
        k = k + 1
        Print k
      Case Else
        k = k + 2
        Print k
    End Select
    Loop Until s = 1