黑马程序员技术交流社区
标题:
求解下图程序中=和==的区别
[打印本页]
作者:
李志祥
时间:
2012-3-27 12:05
标题:
求解下图程序中=和==的区别
本帖最后由 李志祥 于 2012-3-27 12:22 编辑
1.JPG
(14.35 KB, 下载次数: 24)
下载附件
2012-3-27 12:05 上传
2.JPG
(15.27 KB, 下载次数: 16)
下载附件
2012-3-27 12:05 上传
为什么上面和下面的用的不都是=呢,下面的用==,上面的用的是=,而我下面用=的话,就不会输出李四的工资
有什么区别啊,求解,多谢
作者:
李志祥
时间:
2012-3-27 12:22
柏云杉兄弟已给解答。
= 是赋值,==是判断两边的值是否相等然后返回一个bool值。
if 语句它会根据小括号中的表达式所返回的bool值来判断是否执行大括号中的代码。
所以要用==。
作者:
张恒
时间:
2012-3-27 12:28
switch (input)
{
case "A":
salary += 500;
break;
case "B":
salary += 200;
break;
case "C":
break;
case "D":
salary -= 200;
break;
case "E":
salary -= 500;
break;
default:
Console.WriteLine("您的输入有问题");
flag = true;
break;
}
if (flag = false)
{
Console.WriteLine("张三的工资是" + salary);
}
当你输入后,switch会匹配对应的case,没有匹配到,则执行default中的代码块。
因为你输入了正确的匹配值,对应的case中的代码执行。但你没有看到输出结果。但也没有报错。
是因为if(flag=false) 在编译这句代码的时候把flag=false解析为给flag变量赋值,再做if判断。所以不会报错,if 中的条件是false,所以不会执行if中的代码块。
因此出现了你所说的情况
作者:
张学良
时间:
2012-3-27 12:38
if()里面必须放的条件表达式,你放的=是赋值语句,怎么可能正确呢!
作者:
孙树迁
时间:
2012-3-27 12:47
看来你基础视频没有好好看啊,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2