kingofsocket
2014-05-03 20:38
采纳率: 20%
浏览 357
已采纳

自己做了一个Atm机的程序

if(ID());
{funcs();}

boolean f=ID();
if(f){
funcs();
请问以上这两种代码有什么区别吗。
ID()是判断账号密码的方法
funcs()是进入1取款、2查询、3转账,功能选择界面的方法
为毛我用第一种方法写,密码输错了之后直接就进入功能选择界面了?
就是ID()为false的时候,还能执行funcs().

如果用第二种,先把ID()的值赋给f,在进入选择语句。就不会出现这种问题了。 这是什么情况?
刚学JAVA2个星期, 请各位指教。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • iteye_7115 2014-05-04 15:36
    已采纳

    if(ID())[b][color=red]; [/color][/b]
    {funcs();}

    此处多了个分号,造成if判断成功后执行了空语句
    而后面的{funcs();} 则跟if判断没判断的下一执行语句

    打赏 评论
  • M44346460 2014-05-03 22:03

    if(ID());
    {funcs();} 你没看到你if后面直接就是分号吗?意味着有没有密码验证都会执行功能函数。建议你练习的时候,好好的把课本上的例子调通,同时看书的时候,认真的把基本的条件控制语句看懂,不要只是单纯的翻书!

    打赏 评论
  • ck504323276 2014-05-04 09:11

    if后面的分号去掉!
    加了分号说明这个if块结束了!
    下面的{funcs();} 就不是if块里的代码了!
    北大青鸟的吧!

    打赏 评论

相关推荐 更多相似问题