黑马程序员技术交流社区
标题:
求答案
[打印本页]
作者:
穆玉明
时间:
2013-6-19 14:56
标题:
求答案
本帖最后由 穆玉明 于 2013-6-19 19:12 编辑
int age=15;
char sex='f';
if(age<10)
if(sex=='f')
{Console.WriteLine("小女人");}
else
{Console.WriteLine("你长大了");}
请问最后输出什么 说明理由?
作者:
愛↘轉角
时间:
2013-6-19 15:36
什么都不输出吧
当碰到第一个if,age<10是false,就直接跳到else里了,而你这里没有外部if的else结构,
计算机当碰到else会默认寻找上一个最近的if(我也不知道怎么表达).就跟if(sex=='f')这个if匹配了
在第一个if之后加一对大括号把第二个if放进去就行了吧。。
作者:
陈壹
时间:
2013-6-19 15:56
什么都不输出,当if()后面不加{},那么它的执行语句只有条件后面的一句,后面的else属于if(sex=='f'),也就是说当age>10为true的情况下才执行iif(sex=='f'){}else{}的语句,结果就是什么都没有
作者:
顾磊磊
时间:
2013-6-19 16:03
我都有点不好意思回答了,:L
但还是得回答一下:lol
结果当然是什么都没有输出
原因很简单age<10为false
后面整个if(){}else{}语句都不会再执行了。
因为if和else是就近组合在一块的。
作者:
y96352
时间:
2013-6-19 16:25
什么都没输出
if(age<10)
if(sex=='f')
因为没有加括号 那么if(sex=='f')就是if(age<10)判定成功后的执行语句 if(age<10)判定为false 那么if(sex=='f') 不执行
else是跟最近的if组合在一起的 if(sex=='f') 不执行的话 else 也没执行 所以最后什么都没有输出
作者:
李士茂
时间:
2013-6-19 16:43
什么都不输出,因为if默认只匹配与它最相近的一条语句,你的else对应着if(sex=='f')这个条件 而不是if(age<10)这个条件
作者:
◇゛ 仅此而以
时间:
2013-6-19 17:50
if(age<10)
if(sex=='f')
因为只有age < 10 的时候 第二个if 才会执行
而else 只匹配最近的if 所以 什么都不会输出
作者:
帕格尼尼的眼泪
时间:
2013-6-23 00:43
代码没有错误,但是什么都不会输出,因为else只跟它最近的 if 配对(if(sex==)),
作者:
帕格尼尼的眼泪
时间:
2013-6-23 00:51
代码没有错误,但是什么都不会输出,因为else只跟它最近的 if 配对,也就是if(sex=='f'),又因为age=15,所以会跳过if(age<10)这个条件,不会执行if(sex=='f'),esle是跟if(age<10)是一对,所以不会执行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2