首页蓝耳朵|小小蓝耳朵广州图书馆外文室英语儿童读物资源介绍网佛教青年之友旧版收集永硕E盘Phonics Short Vowels Game 
记录一个与或非的问题。。。
所属栏目:ASP.NET(webform)  时间:2010-09-16 09:15  作者:狼子

就是这样子的东西:

if (statType.Equals("2") || statType.Equals("3"))
{ }
else
{
  sbErr.AppendLine("提交参数不正确,当前值:" + statType);
}

statType的值只可以是2或者3,如果是别的值,就报错

因为if子句是空语句,所以想要直接进入else子句,昨天大猫教我的时候,我想懂了,现在又想不懂了,看见代码在,就是,我又想不明白了。。。

直接答案:

if (!(statType.Equals("2") || statType.Equals("3")))
  sbErr.AppendLine("提交参数不正确,当前值:" + statType);

正确答案:

if (!statType.Equals("2") && !statType.Equals("3"))
  sbErr.AppendLine("提交参数不正确,当前值:" + statType);

下面是昨天的对话,我越看越懵。。。先记录下来,回头再重新看

狼子() 14:24:02
大猫,帮我看一下这个好不好?

if (!statType.Equals("2") || !statType.Equals("3"))

我要的是statType的值,不等于2,或者不等于3的时候,进入if语句

大猫() 14:24:16
啊?

狼子() 14:24:16
我现在等于2也进去了

大猫() 14:24:19
稍等一下啊

狼子() 14:24:49
if (!statType.Equals("2") || !statType.Equals("3"))
    sbErr.AppendLine("提交参数不正确" + statType);

就是statType只可以是2或者3两个值

狼子() 14:26:43
 
现在报这个,statType = "2",参数也不正确了

狼子() 14:30:16
可以了,我这样子用条件了:
if (!(statType.Equals("2") || statType.Equals("3")))

就是,等于2或者等于3,都不成立

最害怕这种东西了,搞好乱。。。

大猫() 14:31:09
这样也可以:
if (!statType.Equals("2") && !statType.Equals("3"))
    sbErr.AppendLine("提交参数不正确" + statType);

狼子() 14:31:24
为什么是&&不是||啊?

大猫() 14:32:01
你说的有问题

大猫() 14:32:05
我要的是statType的值,不等于2,或者不等于3的时候,进入if语句


狼子() 14:32:17
嗯,我是要这样子

狼子() 14:32:28
就是,我不明白为什么是用&&,不是用||

大猫() 14:32:32
不等于2,或者不等于3的时候,进入if语句

这句话的意思是:任何情况下,都进入if语句

狼子() 14:32:56
不明白

大猫() 14:33:11
不等于2,或者不等于3的时候


大猫() 14:33:39
!=2 || !=3

狼子() 14:33:59
是这样子啊,statType只可以是2和3两个值,所以就是不等于2或者不等于3了

狼子() 14:34:27
!=2 || !=3
这个我看懂,这个是不对头

大猫() 14:34:39
不等于2,或者不等于3


大猫() 14:35:00
不等于2,或者不等于3
任意一个值,都不可能既等于2 又等于3

狼子() 14:35:26
不明白这两句有什么关系

狼子() 14:35:52
我不想这个问题了,我先做完,做完再回头想这个问题,可以不可以?

狼子() 14:36:11
我直接先用你的判断:
if (!statType.Equals("2") && !statType.Equals("3"))

大猫() 14:36:18
不等于2,或者不等于3
用表达式就是!=2 || !=3

对不?

大猫() 14:36:35
我的判断也不对的,因为你的话我没看懂

狼子() 14:37:03
嗯,我要的是这样子的意思:
if (!(statType.Equals("2") || statType.Equals("3")))

大猫() 14:38:13
不等于2,或者不等于3
就是全部的值


狼子() 14:38:27
statType等于2或者等于3,就是正确的,else,就是错误的

我现在是想要把else部分写在if里,因为if是空语句,就是:

if (statType.Equals("2") || statType.Equals("3"))
{}
else
{
   //报错
}

大猫() 14:38:48
不等于2,或者不等于3
!=2 || !=3

这个表达式永远为真

大猫() 14:39:42
我觉得你想表达的意思是:
既不等于2,又不等于3的值,是非法的参数


大猫() 14:40:20
你要这样说:
我要的是statType的值,不等于2,而且不等于3的时候,进入if语句

狼子() 14:41:23
既不等于2,又不等于3
不等于2,而且不等于3

狼子() 14:41:39
什么叫“既”

大猫() 14:41:48
不等于2,又不等于3

狼子() 14:42:00
嗯嗯嗯,我是要这个,不等于2,又不等于3

大猫() 14:42:03
既.....又.......
这是一种组词的方式

狼子() 14:42:12
 

大猫() 14:42:18
又表示的是&&
或者表示的是||

狼子() 14:42:38
嗯,我有点明白了,不等于2,又不等于3,所以用&&

大猫() 14:42:47
所以你表达的有问题,表达式也有问题

狼子() 14:43:03
那为什么说你的也不对呢?
你的这个:
if (!statType.Equals("2") && !statType.Equals("3"))
是对的啊

大猫() 14:43:24
按照你原来的意思,我那样写不对

大猫() 14:43:36
后来我纠正了你的意思,就用 &&

狼子() 14:43:40

小楼宝宝的涂鸦花花(Imitater)的博客起名称骨测字皖ICP备06000023号-17