C#问题。if(b = c = 0)这儿怎么不对啊、
发布网友
发布时间:2024-10-14 02:00
我来回答
共6个回答
热心网友
时间:2024-10-14 08:23
C#与其它的语言不同,它在if表达式中不可存在非布尔值的计算结果。
比如弱类型的语言PHP,你的这种用法 是正确的,但是在C#中,b=c=0这一条语句的计算结果并不是布尔值,而是一个常量,所以一定会出错。
另外,单个等于号是表示赋值,比如 b=c=0表示把b和c都赋值为0,所以这里是一条赋值语句,并不是可以直接拿来判断的布尔类型值。
如果你想比较它们,那么应该:
if(b==0 && c==0){} //这个表示b的值是0的同时,c的值也是0
if(b==0 || c==0){} //这个表示b的值是0或者c的值是0,任意一个为0,都成立
以上。
热心网友
时间:2024-10-14 08:22
你可以把 if (b = c = 0) 里面是需要boolean值的 把单等换成双等就可以了
热心网友
时间:2024-10-14 08:29
里面是==
是不是b==c=0
热心网友
时间:2024-10-14 08:27
虽然没学过C#,但是觉得C#可以这样判断条件吗?
数值的比较,应该是 b==0 || c==0 因为编译器不知道你是想比较B和C相等呢,还是B和C同时相等的情况下再去判断他们是不是都为0,所以你的逻辑不清晰,连我也不知道你想怎样判断的。所以一般编程语言的判断方式应该是:if( b == 0 || c == 0)或者你也有可能是想这样:if(b == 0 || c == 0 || b=c)。。或者你还有可能是这样想if( b == 0 || c == 0 & B==C)。。。。。
所以你明白为什么编译器无法让你通过了吗?因为它不知道你想怎样去判断。
热心网友
时间:2024-10-14 08:23
if(b = c = 0)这儿怎么不对啊、
C#不能这么写
应该这么写 if(b== c && c == 0)
比较要用== 只有一个=是赋值,而且多个比较要用逻辑运算符拼起来 &&(或) ||(并),
热心网友
时间:2024-10-14 08:29
== 这才是等于号吧