Thinking in Java第三、四章学习笔记----操作符与控制执行流程

按位与或非和逻辑与或非的区别:

  两者运算结果一样,但是逻辑与或非在确定表达式真假时就不继续往下运算了,而按位与或非将运算到底,尽管它可能在之前的运算中就确定了整个表达式的真假。

操作符:

  C#、C++可以重载操作符,Java不可以。

数据类型转换:

  Java允许将任何基本数据类型转换成其他基本类型,但是布尔型除外。大范围到小范围可能会因截尾丢失精度,若要得到舍入的结果,就需要使用java.lang.Math中的round方法。

Java没有sizeof:

  在C和C++中sizeof后面跟的是数据分配的字节数,其主要作用是为了移植性。因为在C和C++中,相同的数据类型在不同位数的机器所占存储空间不一样,但是Java固定了基本类型的大小,故没有必要存在sizeof。

for循环:

  Java里唯一用到逗号操作符的是for循环的控制表达式,在控制表达式的初始化和步进控制部分,可以适用一系列由逗号分隔的语句,而且那些语句都会单独执行。

  注意:通过适用逗号操作符,可以在for语句里定义多个变量,但是各变量必须是同一类型。

for(int i = 1, j = i + 10; i <5; i++, j = i * 2)

foreach:  

  foreach,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。

  任何返回一个数组的方法都可以适用 foreach。

for(float x : f )    //其中f是某个数组

  对于下面的语句,foreach将不起作用。

for(int i = 0; i < 100; i++)

return:  

  两个作用:一为返回值;二为退出当前方法,并返回那个值。

无穷循环:

  for(;;)和while(true)。

"臭名昭著"的goto:

  goto起源于汇编语言,其功能为若A成立,则跳转到这里,否则跳转到那里。goto语句是在源码级上的跳转,若程序总是从一个地方跳转到另一个地方,这显得程序的控制流程难以识别,这使其招致了不好的声誉,而Edsger Dijkstra发表著名论文《goto有害》之后,众人开始痛斥goto的不是。其实真正的问题不在于goto,而在于goto的滥用。而且少数情况下,goto依然是最好的组织控制流程的手段。

  尽管Java的保留字中有goto,但在语言中并未使用它,Java没有goto。然而Java也能完成类似的跳转操作,这与break和continue有关。(注意只是类似跳转,实则为中断迭代)

  标签是后面跟有冒号的标识符。标签的作用是让continue、break中断循环,直到标签所在的地方。

关于break、continue具体中断过程将在下篇博文中详细介绍。

原文地址:https://www.cnblogs.com/promiseslc/p/8583102.html