一道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 年????
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
博主不要心急嘛,一步步来做。