if (love = true)其中的“=”用一个或两个都可以运行、怎么回事

来源:百度知道 编辑:UC知道 时间:2024/06/28 17:12:55
应该是“=”是赋值、“==”表示是相等、那if里边应该是用“==”吧、
那为什么“=”也可以运行程序那?!
顺便补充一句我是菜鸟、别见笑 囧
bool love = true;
if (love = true)
{
Console.WriteLine("我爱你!");
}
else
{
Console.WriteLine("我不爱你!");
}
Console.ReadLine();

通常布尔值不需要等于号的,如果为真就是“if(bool)”,反则为假就是“if(!bool)”,几乎所有的语言或者脚本都适用,有条理的写法最好这样做:
bool love=flase,string str;
if(love)
{
str="我爱你!";
}
else
{
str="我不爱你!";
}
Console.WriteLine(str);
Console.ReadLine();

love = true是个赋值表达式
所以love = true的表达式结果是个bool值 是可以使用的

一般在使用bool结果的赋值表达式的时候通常不建议直接在条件内写
而使用bool变量时建议不使用和true false比较来判断而直接使用变量的值
即if(love)
{

}

if(love=true)
做的应该是先把love赋为true,然后判断复制是否成功,成功则执行Console.WriteLine("我爱你!"); ,反之则Console.WriteLine("我不爱你!");

love==ture 是个布尔表达式,判断love的值是否为true,

赋值也是true
相等也是true

所以都是 if(true)
效果一样嘛

(love = true)就是 赋值为true了
所以就这样只会显示 我爱你,不管你上边 定义为 true or false 结果都不会变