标题:switch后面的表达式中的==与=
只看楼主
睡神之首
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2004-5-7
 问题点数:0 回复次数:5 
switch后面的表达式中的==与=

x=0; y=2; x=3; switch (x) { case 0 : switch ( y == 2 ) /*当==结果输出&#改成=的时候结果输出%#*/ {case 1 : printf ("&"); break; case 2 : printf ("%"); break; } case 1 : switch (z) {case 1 : printf ("$"); case 2 : printf ("*"); break; default : printf ("#"); } }

/*当==结果输出&#改成=的时候结果输出%#*/ 请告诉原因

搜索更多相关主题的帖子: switch 表达 
2004-05-19 20:31
kuangjingbo
Rank: 1
等 级:新手上路
帖 子:312
专家分:0
注 册:2004-4-24
得分:0 

c的基础问题


永不放弃!
2004-05-19 22:24
jiely
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2004-5-15
得分:0 

我也糊涂了~~~,不知道下面的解释合理不?

== 是逻辑判断,y == 2成立,则switch(y==2)的值应该是1即逻辑真~~所以执行case 1

=是赋值运算符,y=2,把2赋值给y 所以执行case 2.

就事论事~~~,我想这样解释是对的,

不过为什么会输出'#'号,我不懂为什么,

请大家讨论一下


我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
2004-05-19 22:35
睡神之首
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2004-5-7
得分:0 
谁来解释解释啊?

己不所欲,勿施于人。 有心为善虽善不赏,无心为恶虽恶不罚。
2004-05-21 10:51
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
得分:0 
#是外面个switch语句输出的,因为外面没有break语句,所以两个case都执行了

我的主页 http://www.
2004-05-25 19:39
hk327143206
Rank: 2
等 级:论坛游民
帖 子:35
专家分:31
注 册:2011-6-25
得分:0 
=号是赋值,==是判断,向上面的switch ( y == 2 )就相当于switch (1)
2011-06-26 00:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-1655-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.415490 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved