随记

原创 2015年07月09日 08:26:57

有这样一段代码:

<pre name="code" class="java">int a = 2;
int b = 3;
if(a++ = b++){
a++;
b++;
}
system.print.out(a);
system.print.out(a);

输出是什么?

看到if中的条件的时候,瞬间蒙掉了,b++到底是赋值给了a?还是a++?

根据优先级,是赋值给了a所寄存的那个临时变量,即:a(临时变量) = 3;那a++就变成了a(旧值)+1=2+1=3

至于b,就不用说了,so,这段代码的输出是:3 4

OK,我们接着看一段代码:

int a = 2;
int b = 3;
if(a = b++){
a++;
b++;
}
system.print.out(a);
system.print.out(a);

这个简单啊,简化了上边最让我们头疼的a++赋值,那到底能不能运行呢?if里应该是逻辑值啊,这是个int,怎么办,强转吧:

if((boolean)a = b++)

这样不就OK了。

很不幸,上边的所有论述都是在扯蛋!

理由有两个:

1,赋值语句明确规定:赋值语句的左边必须是变量,不能是表达式,所以上述代码根本无法编译

2,关于if语句中的条件语句:由于Java是强类型语言,不能将int转化为boolean,其实java虚拟机内部boolean类型就是int类型,不过java编译器不允许boolean类型直接转换成int类型。但是由于PHP是弱类型语言,会将非0的变量或常量转为true以供if语句使用,所以代码会继续运行


代码虽小,境界无穷。



版权声明:本文为博主原创文章,未经博主允许不得转载。

storm-入门学习笔记

由于这个工具的名字叫Storm,这些术语一律按照气象名词解释spout 龙卷,读取原始数据为bolt提供数据bolt 雷电,从spout或其它bolt接收数据,并处理数据,处理结果可作为其它bolt的...
  • KuaiLeShiFu
  • KuaiLeShiFu
  • 2016年10月21日 13:03
  • 191

随记:我们需要怎样的数学教育?

随记:我们需要怎样的数学教育? http://www.matrix67.com/blog/archives/4294     注:这篇文章里有很多个人观点,带有极强的主观色彩。其中一些思想...
  • zhiganglet
  • zhiganglet
  • 2014年05月13日 14:25
  • 599

【随记】for 和 for in

for用来遍历数组对象的var array= ["a","b","c","d"];for(var i = 0 ; i < array.length ; i++){ console.log(i ...
  • simpledate
  • simpledate
  • 2017年03月03日 14:05
  • 142

随记(电脑硬件对比)

一、笔记本电脑为什么要打硅脂? 1)原因是以现在的工艺水平,无法做到散热器和处理器表面的完美接触,中间总会有空隙的,这样不利于散热,所以要在散热器和处理器之间涂抹硅脂这类的填充物来传递热量。 现在导热...
  • ningyaliuhebei
  • ningyaliuhebei
  • 2015年04月09日 11:24
  • 850

计算机网络随记

应用层应用层协议原理研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通过网络彼此通信的程序。并且这些应用程序不需要写在网络核心设备如路由器或链路层交换机上运行的软件。即使你要为网络核心...
  • xiaofanzidafanzi
  • xiaofanzidafanzi
  • 2015年10月16日 21:44
  • 293

关于数据库的一些随记

乐观锁乐观锁,大多是基于数据版本 ( Version )记录机制实现。何谓数据版本? 即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段...
  • qq_28988969
  • qq_28988969
  • 2017年12月07日 19:31
  • 16

工作随记(一)

一直一直准备写博客,终于又提起了笔。大学已经毕业半年多了,经历了好多事情,但是依旧没有心灵被洗涤的感觉,不知道那些经历大起大落后有所感悟的人是怎么样的。毕业之前实习了好久好久,加起来也有365天了,在...
  • duanxl11234
  • duanxl11234
  • 2016年01月12日 23:03
  • 136

正则表达式 随记

一、校验数字的表达式  1 数字:^[0-9]*$  2 n位的数字:^\d{n}$  3 至少n位的数字:^\d{n,}$  4 m-n位的数字:^\d{m,n}$  5 零和非零开头的数...
  • u010525544
  • u010525544
  • 2017年08月04日 14:03
  • 49

安全卫士随记

分包 五大部分(四大组件 三大数据 两大界面 一个工具 一个变量) 四大组件activity broadcastreceiver  service  provide  数据相关  适配器adapter...
  • tianzhu2725
  • tianzhu2725
  • 2016年10月06日 14:47
  • 642

离散数学随记

离散数学是上个学期才开始学的,当时学习的时候只是单纯觉得好玩,并没有感觉那些知识多好用。 现在想想自己还有印象的知识大概是:逻辑处理与推理,集合与函数,二元关系,图论,数论,排列组合,代数系统,自动机...
  • aptx1255
  • aptx1255
  • 2017年03月18日 10:09
  • 361
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:随记
举报原因:
原因补充:

(最多只允许输入30个字)