当前位置:  技术问答>java相关

一道模拟题--迷惑中

    来源: 互联网  发布时间:2015-11-17

    本文导语:  boolean m = true; if(m=false)   System.out.println("False"); else   System.out.println("True"); 执行后的输出是什么? boolean m = true; if(m=true)//更改之处   System.out.println("False"); else   System.out.println("True"); 这个执行后的输出又是什...

boolean m = true;
if(m=false)
  System.out.println("False");
else
  System.out.println("True");
执行后的输出是什么?
boolean m = true;
if(m=true)//更改之处
  System.out.println("False");
else
  System.out.println("True");
这个执行后的输出又是什么?
















--------------------------------------
结果分别是"False"和"True"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

上机测试的结果,我怀疑自己的编译器错了.
能告诉我为什么吗,
焦急迷惑中!


|
这个问题在考前我也糊涂了,应该是这样:
if(m=false)中是副值false给m,m原来是true,由于m是布尔类型,副值后满足if语句要求。但如果把m定义为int的话,if(m=1)这样就不行了!
比你这更不一样的是if(m=!false),这是我以前碰到的!
我今天考过了SCJP,努力吧!

|
首先,if()语句中的表达式必须是布尔值,请深刻理解这一点。

if(m=false)作为以下两个语句看待就好理解了:

m=false;
if(m)  //这句其实等价于 if(m==true),而此时的 m 值为 false,
       //所以,流程转到 else 执行,输出为True。

第二个例子同理。

|
是这样的,
m=true这个表达式也是有返回值的,他的返回值就是m.

你知道有这样的写法吗: a = b = 5 ,不管a,b之前是什么值,这个表达式执行了之后就是a和b都是5了。
他的执行顺序是:
1. b = 5 ,这个式子返回5
2. a = 5 , 这个5是上面返回的值。

if(m=true) 的执行顺序是: 
1. m=true 这个式子的返回值是m  
2. if ( 1的返回值即m ) 而这时的m 为true

当m=true时
if(m==true)的执行顺序是:
1. m == true 因为m=true所以返回true 
2. if ( 1的返回值即true )
所以两个式子最后都相当于 if( true ) 所以相同

|
呵呵
其实 assert 也可以这样骗人的
不过更难看出来~~

assert m=false:false;

不过只要记住 在 java 中 整个表达试的值 就是 赋值号= 左边的变量的值
因此, n=1; 为 int 类型 , b=true;为 boolean 类型 
和 C++ 中一样的哈 

|
class  mmT
{
public static void main(String[] args) 
{
boolean m = true;
if(m=true)
{
System.out.println("Hello World!");
}
}
}
-------------考试可以,工作的时候,强烈建议不要写这么暧昧的语句。

|
你可以把if(m=true/false)和
m=ture/false;
if(m)
看成是等效的

java中这个m必须是boolean
c/c++中没有这个限制,int,char,long都可以

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一道送分的问题
  • 一道考验基础的JAVA语法题
  • 问个AIX题库的一道题,感觉答案应该是A啊
  • 关于构造函数的一道题
  • 初中计算机老师给我们出过一道题,那时候印象很深
  • 一道基础英语填空题(Java)
  • 问一道SCJP的题目
  • scjp考题一道
  • scjp考题一道!!!!!!!!
  • 一道SCJP的题
  • 一道SCJP题有请各大虾指教.
  • 一道题,select what & why?
  • 一道关于操作系统的题
  • 问一道算法题
  • 一道习题
  • 一道小程序有问题?请教!
  • 一道scjp的题目
  • 关于操作系统的一道题目(关于临时文件)
  • 这是南京大学的一道操作系统考研题....
  • 一道简单的Unix下shell编程题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3