和大家探讨一个问题。不用编译器,光用眼睛看,能选出正确答案吗?

songyibei 2009-07-04 07:52:53
int a=3, b=5, c=8, d=0;
if(a > b)
if(c > d)
d = c;
else
d = b;


不许用编译器哦,只许用眼睛看,请大家选出你们的正确答案。呵呵~~

选择答案:
A.3
B.5
C.0
D.8
...全文
75 47 打赏 收藏 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
Edwin603 2009-07-05
  • 打赏
  • 举报
回复
int a=3, b=5, c=8, d=0;
if(a > b) System.out.println(d);//补充下这个输出语句不执行的 我只是为了让if语句后跟上一条语句,以免不执行下个if
if(c > d)
d = c;
else
d = b;
System.out.println(d);

当然楼主的正确答案 d=0
我这么改只是为了说明 上面那楼的意思! 我这么改的答案是8
Edwin603 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 hw31789 的回复:]
int a=3, b=5, c=8, d=0;
if(a > b) /*此行是false
if(c > d) /*不执行此行
d = c; /*else不能省略,所以此行是上一行的实例。
else
d = b;/*5赋值给d
d=5
请各位指教
13楼是对的吗?
int a=3, b=5, c=8, d=0;
if(a > b){
if(c > d)
d = c;
}
else
d = b;
[/Quote]
你和13楼的 都不对
9楼写的 才是对的
else是和第2个if配对的 按中国话走 如果。。。就。。。。
那么楼主给的 意思就是如果a>b 就执行 后面的if...else...
既然如果都不成立 那就不执行咯 所以还是 d=0
主要原因是 你们看到的这个例子和书本上的都不一样 原因在于 第一个if后没跟任何 正常写法的语句
也就是 如果。。。后没写就。。。。 所以如果后就跟了那个if...else...
加入改成书本上写的 比如这么改
int a=3, b=5, c=8, d=0;
if(a > b) System.out.println(d);
if(c > d)
d = c;
else
d = b;
System.out.println(d);

那么结果就变成正常看到书本上例子写法了!
楼主这个题主要说明了2点 1是 else和谁配对 2是if判断后该执行哪个语句!
javamode 2009-07-05
  • 打赏
  • 举报
回复
c
「已注销」 2009-07-05
  • 打赏
  • 举报
回复
基础了
guliangwo 2009-07-05
  • 打赏
  • 举报
回复
是c
xiongzhijian 2009-07-05
  • 打赏
  • 举报
回复
晕...
Delta 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 panguo33 的回复:]
应该是0
[/Quote]
C啊。
xiezhiqu 2009-07-05
  • 打赏
  • 举报
回复
选 C
cantalou 2009-07-05
  • 打赏
  • 举报
回复
楼上的 这跟排版没关系吧
scueczhang 2009-07-05
  • 打赏
  • 举报
回复
if后面没有括号,说明后面只有一行执行语句,
所以为了看起来简单,就是下面的形式:
if(a > b){
if(c > d)
d = c;
}
else
d = b;
答案d=0
reff1 2009-07-05
  • 打赏
  • 举报
回复
楼主太淫荡了
故意那样写来误导人
写成
int a=3, b=5, c=8, d=0;
if(a > b)
if(c > d)
d = c;
else
d = b;
的话,谁都会作
hahachinahaha 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 chu2009 的回复:]
int a=3, b=5, c=8, d=0;
if(a > b){
if(c > d)
d = c;
}
else
d = b;

这样的话就很容易

由于没有上面的{},所以我们还是要注意的
[/Quote]
你这个弄反了吧???
else跟和他最近的且没有配对的if相匹配,你这个跟原题意思不一样啊~~~~
xy111222333 2009-07-05
  • 打赏
  • 举报
回复
答案:C
小曦子 2009-07-05
  • 打赏
  • 举报
回复
c
CamilleTao 2009-07-05
  • 打赏
  • 举报
回复
int a=3, b=5, c=8, d=0;
if(a > b)
if(c > d)
d = c;
else
d = b;
我是新手,发表下我的看法
如果是问d的值。我认为是0
分析如下
1.if(a>b)
//上句值为false;
2.if(c>d)
d=c;
//那么这句的代码就不会执行;
3.else
d=b;
//我认为关键混淆的是这句
else在上下都没有{}的作用下。是匹配离它最近的一个if语句。
那么离他最近的if(c>d),但这条语句又是包含在if(a>b)内的。
所以我认为是0
不全上面的写法应该如下:
int a=3, b=5, c=8, d=0;
if(a > b){
if(c > d){
d = c;
}else{
d = b;
}
}
写完这些我才去测试了一下!呵呵,因为是新手!
s32032033 2009-07-05
  • 打赏
  • 举报
回复
else是就近原则嘛,这么简单。
zhangcongfd 2009-07-04
  • 打赏
  • 举报
回复
恩。同意。各变量都没变
izard999 2009-07-04
  • 打赏
  • 举报
回复
各变量的值没有变.
else会找最近的一个if配对.! 所以结构是
if(a>b)
{
if(....)
else
}
整个外围的if块就不会执行,所以各变量不变
islandrabbit 2009-07-04
  • 打赏
  • 举报
回复
同意28楼的看法
jinxfei 2009-07-04
  • 打赏
  • 举报
回复
学编程又不是搞脑筋急转弯,对不对。

楼主不要生气,多花点精力在编程的思路和业务热点上吧。
加载更多回复(27)
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境中 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本中推出的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些值得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提出相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会出现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧