游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4531|回复: 14

求助一个基础问题,如何select case 一个多维数组

[复制链接]

5

主题

27

帖子

31

积分

注册会员

Rank: 2

积分
31
发表于 2007-8-22 13:28:00 | 显示全部楼层 |阅读模式
例如,我的代码
redim T(78,78)

…………………………


for i = 0 to 500
select case T(a(i).num,b(i).num)  '''a(i).num是前面已经定义过的结构体

       case  T(14,15)   '''''我想找到满足a(i).num=14且b(i).num=15的情况
         ……………………

END SELECT

NEXT i         

但是不能达到我的目的,我还试验过select case a(i).num and b(i).num  下面写case 14 and 15依然不能达到目的

难道我一定只能先select case 14一次然后里面嵌套一个select case 15?那样我接下来要写的代码将无比冗长啊!

高手救救我这个新手吧

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2007-8-22 14:11:00 | 显示全部楼层

Re: 求助一个基础问题,如何select case 一个多维数组

多维数组当然必须要用多层循环嵌套啊……

5

主题

27

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2007-8-22 14:30:00 | 显示全部楼层

Re:求助一个基础问题,如何select case 一个多维数组

不是把,应该有方法的吧,如果不用select但能简洁明了的方法也行

22

主题

371

帖子

387

积分

中级会员

Rank: 3Rank: 3

积分
387
发表于 2007-8-22 15:35:00 | 显示全部楼层

Re:求助一个基础问题,如何select case 一个多维数组

case  T(14,15) 满足的条件是取 T(14,15)这个单元中的值,而不是取a(i).num=14且b(i).num=15
你用if elseif取代select case吧
if...
elseif (a(i).num=14 and b(i).num=15)
...
elseif...
...
endif

17

主题

141

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2007-8-22 15:40:00 | 显示全部楼层

Re:求助一个基础问题,如何select case 一个多维数组

还是用if 吧

5

主题

27

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2007-8-22 15:55:00 | 显示全部楼层

Re: Re:求助一个基础问题,如何select case 一个多维数组

Cipher: Re:求助一个基础问题,如何select case 一个多维数组

case  T(14,15) 满足的条件是取 T(14,15)这个单元中的值,而不是取a(i).num=14且b(i).num=15
你用if els...

谢谢,不过,case T(14,15)不是取这个单元的值哦,我测试过,是所有满足T(X,Y)的二元数组都取了一遍,搞的我郁闷

5

主题

27

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2007-8-22 16:12:00 | 显示全部楼层

Re:求助一个基础问题,如何select case 一个多维数组

在百度VB贴吧里面看到这样的回答,可惜我看不懂:哪位高手可以帮我解释一下:Private Type TYPE1
num As Byte
End Type
Dim a(100) As TYPE1, b(100) As TYPE1
Sub Form_Load()
AutoRedraw = 1: KeyPreview = 1
Randomize (Time)
For i& = 0 To UBound(a)
a(i).num = Int(Rnd * 100) + 1
b(i).num = Int(Rnd * 100) + 1
Print a(i).num; b(i).num
Next
a(11).num = 17: b(11).num = 14
a(37).num = 17: b(37).num = 14
End Sub
'为什么你一定要用Select Case 呢?
Sub form_KeyDown(KeyCode As Integer, Sh As Integer)
If KeyCode = 13 Then
Cls
For i& = 0 To UBound(a)
If a(i).num = 17 And b(i).num = 14 Then Print i
Next
End If
End Sub

22

主题

371

帖子

387

积分

中级会员

Rank: 3Rank: 3

积分
387
发表于 2007-8-22 21:54:00 | 显示全部楼层

Re:求助一个基础问题,如何select case 一个多维数组

如果 T(14,15)=0

那么case T(14,15)就是取T(14,15)的值等于0,等价于case 0,
当在遍历循环中select case T(i,j)的时候,
所有T(i,j)中值=0的自然都会落到这个case T(14,15)里面

这么说你明白了吧

那个百度答案也是建议用if的

5

主题

27

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2007-8-23 08:30:00 | 显示全部楼层

Re: Re:求助一个基础问题,如何select case 一个多维数组

Cipher: Re:求助一个基础问题,如何select case 一个多维数组

如果 T(14,15)=0

那么case T(14,15)就是取T(14,15)的值等于0,等价于case 0,
当在遍历循环中select ca...

T(X,Y)是我做这个循环而定义的二维数组,T(14,15)根本没有给他赋值,系统是如何判断的?而且我设置中断一步一步执行下来发现每次都运行的可见这个CASE对任何T(X,Y)都有效,而不是LS说的那样,不信LS可以自己试试

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2007-8-23 08:56:00 | 显示全部楼层

Re: Re: Re:求助一个基础问题,如何select case 一个多维数组

wantgoal: Re: Re:求助一个基础问题,如何select case 一个多维数组


T(X,Y)是我做这个循环而定义的二维数组,T(14,15)根本没有给他赋值,系统是如何判断的?而且我设置中断一...


数组所有元素的初始值为0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-4-5 03:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表