vbscript - 将 int 数组拆分为两个数组偶数和奇数 VBscript 错误
问题描述
我已经为打印出来的数字数组编写了代码。我现在正在编写代码以将数组拆分为偶数和非数。我已经开始使用 if 语句来分隔数字,但我正在努力寻找如何做到这一点的解决方案。我下面的代码失败了,因为它无法拆分数字。
Sub main()
a=Array(5,10,15,20)
for each x in a
Msgbox(x)
If MyArray(I) / 2 = MyArray(I)
List1.AddItem MyArray(I) ' Even Integers
Else
List2.AddItem MyArray(I) ' Odd Integers
End if
next
End Sub
解决方案
正如 Lankymart 建议的那样,最简单的方法是使用Mod()
并检查余数是 1 还是 0,但您也可以使用您似乎正在努力的方法来做到这一点:
If MyArray(index)/2 = Int(MyArray(index)/2) Then
' Even number
Else
' Odd number
End If
Mod()
方法:
If MyArray(index) Mod 2 = 0 Then
' Even number
Else
' Odd number
End If
这是一个完整的子例程,演示了您要执行的操作:
Dim arr(4) As Integer
Dim arrEven() As Integer
Dim iEvenValues As Integer
Dim arrOdd() As Integer
Dim iOddValues As Integer
Dim iCounter As Integer
' Initialize array
arr(0) = 5
arr(1) = 10
arr(2) = 15
arr(3) = 20
For iCounter = 1 To UBound(arr)
If arr(iCounter - 1) Mod 2 = 0 Then
iEvenValues = iEvenValues + 1
ReDim Preserve arrEven(iEvenValues)
arrEven(iEvenValues - 1) = arr(iCounter - 1)
Else
iOddValues = iOddValues + 1
ReDim Preserve arrOdd(iOddValues)
arrOdd(iOddValues - 1) = arr(iCounter - 1)
End If
Next
Dim sValues As String
sValues = "Even values (" & iEvenValues & "):"
For iCounter = 1 To UBound(arrEven)
sValues = sValues & " " & arrEven(iCounter - 1)
Next
MsgBox sValues
sValues = "Odd values (" & iOddValues & "):"
For iCounter = 1 To UBound(arrOdd)
sValues = sValues & " " & arrOdd(iCounter - 1)
Next
MsgBox sValues
推荐阅读
- go - 如何在 Golang 中修复“net/http set header ORIGIN”
- sql-server - 如果表中不存在当前记录,如何获取上一个记录
- c# - for循环中的单个分号是什么意思?
- javascript - 表单按钮链接和js按钮链接有什么区别?
- dart - 如何在颤动中制作带水印的图像?
- android - Android辅助功能自动扫描不扫描自定义OSK
- javascript - Ajax 未将发布数据发送到 PHP
- java - 查看类的字段时获取对象空指针错误
- flask - EC2/Kubernetes - 如何通过 EC2 上的 NodePort 访问集群烧瓶服务?
- php - 如何修复 PHP 中的“Uncaught PDOException: SQLSTATE[22007]”致命错误