一个小小的逻辑问题,关于if ,else if , else的。

miniflashow 2003-04-08 01:51:25
String todo="refresh";
int dMode=3;
String buffering=null;

if (todo == null)
{System.out.println("todo==null");}
else if ( (dMode == 3) && (buffering == null)
{System.out.println((dMode == 3));}
else
{System.out.println((dMode == 3)+"else");
System.out.println("else");}%>

输出是:
trueelse

else

true

谁能帮我解释一下逻辑呢?
...全文
63 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
miniflashow 2003-04-08
  • 打赏
  • 举报
回复


谢谢大家。
特别是acefr()
hoxisoft 2003-04-08
  • 打赏
  • 举报
回复
true
acefr 2003-04-08
  • 打赏
  • 举报
回复
if (todo == null)
{System.out.println("todo==null");}//因为todo != null,所以不执行这句,程序继续运行
else if ( (dMode == 3) && (buffering == null) )//条件成立执行括号内的语句
^-----这里如果改为4,那么将执行else里的语句
{System.out.println((dMode == 3));}//因为dMode为3,输出true。且后面的不执行。

else//如果前两个条件都不成立,那么执行括号内的语句

{System.out.println((dMode == 3)+"else");//dMode为3,所以输出true,整句为trueelse
System.out.println("else");}//换行输出else
acefr 2003-04-08
  • 打赏
  • 举报
回复
输出应该是
true
learnner 2003-04-08
  • 打赏
  • 举报
回复
看不明白,你的输出结果中的最后一个true是哪里来的呢?
应该是
trueelse

else
吧?
miniflashow 2003-04-08
  • 打赏
  • 举报
回复
修正一下:
String todo="refresh";
int dMode=3;
String buffering=null;

if (todo == null)
{System.out.println("todo==null");}
else if ( (dMode == 3) && (buffering == null) )
{System.out.println((dMode == 3));}
else
{System.out.println((dMode == 3)+"else");
System.out.println("else");}

62,614

社区成员

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

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