一道VB题?哪里错了?(高分)

来源:百度知道 编辑:UC知道 时间:2024/05/05 08:36:10
显示1980到2010年间所有闰年的年号
Private Sub Command1_Click()
For y = 1980 To 2010
If y Mod 4 = 0 And y Mod 100 = 0 Or y Mod 400 = 0 Then
Text1.Text = Text1.Text & y & " "
End If
Next y
End Sub
我这样写错在哪里?在文本框内的结果怎么会只显示2000 年????

应该是 if y mod 4 =0 and y mod 100 <> 0 or y mod 400 =0 then

If y mod 4 =0 and y mod 100 0 or y mod 400 =0 then print "闰年" else print "平年"

请注意闰年的逻辑。

“是4的倍数,而且遇到100的倍数时要同时为400的倍数才能算闰年。”

根据第一个条件,得出

If y Mod 4 = 0 Then

然而加上后面一个条件应该是这样的

If (y Mod 4 = 0 And y Mod 100 <> 0) Or (y Mod 100 = 0 And y Mod 400 = 0) Then

其中,当 y Mod 400 = 0 时,y Mod 100 = 0 恒成立;且 Or 的优先级比 And 低。所以化简为

If y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 Then

博主不要心急嘛,一步步来做。