CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

天那,什么逻辑,它应该是False呀!

楼主wendream(dreamwen)2005-09-02 18:19:05 在 VB / 基础类 提问

If   a(1,   2)   >   a(1,   1)   And   a(1,   3)   >   a(1,   2)   And   a(2,   2)   >   a(2,   1)   And   a(2,   3)   >   a(2,   2)   Then   col   =   True  
                                       
  If   a(2,   1)   >   a(1,   1)   And   a(2,   2)   >   a(1,   2)   And   a(2,   3)   >   a(1,   3)   Then   row   =   True                                                                          
                                       
  If   col   =   True   And   row   =   True   Then                     '让人难以理解的是这两个变量居然是True!  
          Label1.Caption   =   a(1,   1)  
          Label2.Caption   =   a(1,   2)  
          Label3.Caption   =   a(1,   3)  
          Label4.Caption   =   a(2,   1)  
          Label5.Caption   =   a(2,   2)  
          Label6.Caption   =   a(2,   3)  
  End   If              
   
        天哪,执行如上语句,六个label的caption分别显示的是1,5,5,5,5,6。为什么呀?这样的话逻辑变量col和row的值应该都是False啊!莫非显示的并不是数组的值? 问题点数:10、回复次数:10Top

1 楼jinjazz(近身剪)回复于 2005-09-02 18:25:08 得分 2

else   col=falseTop

2 楼wendream(dreamwen)回复于 2005-09-02 18:28:55 得分 0

请问else   col=false   应该放在那里呀?  
   
  这条语句好象没什么来由的吧?Top

3 楼jjkk168(老加班的人--好好学习,天天吃饭)回复于 2005-09-02 18:35:48 得分 1

你在你的第一句代码前面加入断点,看看col的默认值是不是true,或者看看row的值是不是trueTop

4 楼wendream(dreamwen)回复于 2005-09-13 13:10:19 得分 0

我试过了.col的默认值是false,row的值是false.  
  col和row   我都定义的是窗体变量.在窗体的装载事件中就赋值为false了。Top

5 楼wendream(dreamwen)回复于 2005-09-13 13:12:31 得分 0

完整代码如下:  
  '/*************************************************************************************/  
  '把123456填入如下表格内:  
   
  '----------------------  
  '|           |               |             |  
  '|           |               |             |  
  '----------------------  
  '|           |               |             |  
  '|           |               |             |  
  '----------------------  
   
  '要求:1、每一列右边的数字比左边的大  
  '             2、每一行下面的数字比上面的大  
  '/*************************************************************************************/  
   
   
   
  Option   Base   1       '   设定数组下限从数字1开始  
   
  Option   Explicit  
   
  Dim   a(2,   3),   i,   j   As   Integer  
  Dim   b(4)   As   Integer  
  Dim   a1,   a2,   a3,   a4   As   Integer  
  Dim   col,   row   As   Boolean  
   
   
   
  Private   Sub   Command1_Click()  
      Dim   b(4),   i   As   Integer  
      Randomize  
      i   =   1  
      j   =   1  
      For   i   =   1   To   2           '将数组清零  
              For   j   =   1   To   3  
                      a(i,   j)   =   0  
              Next   j  
      Next   i  
      b(1)   =   2  
      For   i   =   2   To   4  
              b(i)   =   i   +   1  
      Next   i  
       
      a(1,   1)   =   1  
      a(2,   3)   =   6  
       
      For   a1   =   1   To   4  
              For   a2   =   1   To   4  
                      For   a3   =   1   To   4  
                              For   a4   =   1   To   4  
                                      a(1,   2)   =   b(a1)  
                                      a(1,   3)   =   b(a2)  
                                      a(2,   1)   =   b(a3)  
                                      a(2,   2)   =   b(a4)  
                                       
                                      If   (a(1,   2)   >   a(1,   1))   And   (a(1,   3)   >   a(1,   2))   And   (a(2,   2)   >   a(2,   1))   And   (a(2,   3)   >   a(2,   2))   Then   col   =   True  
                                       
                                      If   (a(2,   1)   >   a(1,   1))   And   (a(2,   2)   >   a(1,   2))   And   (a(2,   3)   >   a(1,   3))   Then   row   =   True  
                                                                           
                                       
                                      If   col   =   True   And   row   =   True   Then  
                                            Label1.Caption   =   a(1,   1)  
                                            Label2.Caption   =   a(1,   2)  
                                            Label3.Caption   =   a(1,   3)  
                                            Label4.Caption   =   a(2,   1)  
                                            Label5.Caption   =   a(2,   2)  
                                            Label6.Caption   =   a(2,   3)  
                                            For   i   =   1   To   10  
                                                    For   j   =   1   To   10000  
                                                     
                                                    Next   j  
                                            Next   i  
                                             
                                             
                                      End   If  
                                       
                              Next   a4  
                        Next   a3  
                Next   a2  
      Next   a1  
       
   
  End   Sub  
   
  Private   Sub   Command2_Click()  
      End  
  End   Sub  
   
  Private   Sub   Form_Load()  
        i   =   1  
        j   =   1  
        For   i   =   1   To   2  
                For   j   =   1   To   3  
                        a(i,   j)   =   0  
                Next   j  
        Next   i  
        col   =   False  
        row   =   False  
         
  End   Sub  
  Top

6 楼wendream(dreamwen)回复于 2005-09-13 13:14:26 得分 0

各位前辈高手帮我看下嘛.难到说csdn上都没有高手了么?或者竟然没有一个热心帮助别人的人?  
  帮帮忙哈.Top

7 楼phommy(石头,竹子,诗)回复于 2005-09-13 13:21:01 得分 2

If   col   =   True   And   row   =   True   Then  
   
  请注意逻辑运算的优先级问题  
   
  if   (col=true   )   and   (row=true)  
  if   col=   (true   and   (row=true))  
  if   (col=   (true   and   row))   =true  
  if   col=   ((true   and   row)   =true)  
   
  是哪一种?Top

8 楼WM_JAWIN(失业,找工作中...)回复于 2005-09-13 13:42:24 得分 2

还是你逻辑有问题!  
  你改成这样试试  
  ...  
  If   col   =   True   And   row   =   True   Then  
  stop'<-----加一行  
  Label1.Caption   =   a(1,   1)  
  ..  
  运行暂停时,你看看那些值是什么,我看了几个,基本正常Top

9 楼Tiger_Zhao(VB老鸟)回复于 2005-09-13 14:39:41 得分 2

jinjazz(近身剪(充电中...))已经解答了:  
  If   (a(1,   2)   >   a(1,   1))   And   (a(1,   3)   >   a(1,   2))   And   (a(2,   2)   >   a(2,   1))   And   (a(2,   3)   >   a(2,   2))   Then  
      col   =   True  
  Else  
      col   =   False  
  End   If  
   
  If   (a(2,   1)   >   a(1,   1))   And   (a(2,   2)   >   a(1,   2))   And   (a(2,   3)   >   a(1,   3))   Then  
      row   =   True  
  Else  
      row   =   False  
  End   If  
  Top

10 楼SFMrp2000(答对了把分给我!!!)回复于 2005-09-13 15:48:25 得分 1

嘻嘻...Top

相关问题

  • 今天看数理逻辑,好玩。
  • 一个小逻辑应该如何实现?帮忙看一下!
  • 一个小逻辑应该如何实现?帮忙看一下!
  • 商业逻辑应该放在entity bean里还是session bean里比较好
  • 这种逻辑上不具有父子关系的类是否应该继承?
  • 我用钩子钩到某进程的wm_mousemove消息,但是得到的鼠标位置是它的逻辑坐标,用clienttoscreen或lptodp等函数进行转换都没有转换过来,请问应该怎么才能变成屏幕坐标???
  • 商业逻辑应该放在entity bean里还是session bean里比较好(前个帖子我进不去了)
  • 请问各位大师,逻辑异或运算符应该怎么写,高分征集
  • 在XSL中使用Javascipt时使用逻辑判断符>时,应该用什么来转义呢?
  • 不合逻辑?

关键词

  • 数字
  • integerdim
  • 数组
  • caption
  • col
  • 变量
  • 应该
  • label
  • row
  • next

得分解答快速导航

  • 帖主:wendream
  • jinjazz
  • jjkk168
  • phommy
  • WM_JAWIN
  • Tiger_Zhao
  • SFMrp2000

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo