java运算符常规操作规则

使用运算符的一个缺点是括号的运用经常容易搞错。即使对一个表达式如何计算有丝毫不确定的因素,都容易混淆括号的用法。这个问题在Java里仍然存在。
在C和C++中,一个特别常见的错误如下:

while(x = y) {
//...
}

程序的意图是测试是否“相等”(==),而不是进行赋值操作。在C和C++中,若y是一个非零值,那么这种赋值的结果肯定是true。这样使可能得到一个无限循环。在Java里,这个表达式的结果并不是布尔值,而编译器期望的是一个布尔值,而且不会从一个int数值中转换得来。所以在编译时,系统就会提示出现错误,有效地阻止我们进一步运行程序。所以这个缺点在Java里永远不会造成更严重的后果。唯一不会得到编译错误的时候是x和y都为布尔值。在这种情况下,x = y属于合法表达式。而在上述情况下,则可能是一个错误。
在C和C++里,类似的一个问题是使用按位AND和OR,而不是逻辑AND和OR。按位AND和OR使用两个字符之一(&或|),而逻辑AND和OR使用两个相同的字符(&&或||)。就象“=”和“==”一样,键入一个字符当然要比键入两个简单。在Java里,编译器同样可防止这一点,因为它不允许我们强行使用一种并不属于的类型。

时间: 2024-10-29 17:38:37

java运算符常规操作规则的相关文章

Java运算符

        Java语言中的表达式是由运算符与操作数组合而成的,所谓的运算符就是用来做运算的符号.         在Java中的运算符,基本上可分为算术运算符.关系运算符.逻辑运算符.位运算符.赋值运算符.转型运算符等. 一.算术运算符       所谓算术运算符,也就是我们数学中学到的加.减.乘.除等运算.这些操作可以对几个不同类型的数字进行混合运算,为了保证操作的精度,系统在运算的过程中会做相应的转换.       1.数字精度       所谓数字精度,也就是系统在做数字之间的算术运

使用InfoSphere Streams的自定义Java 运算符和ICU4J实现实时音译

集成 Java 音译模块和 InfoSphere Streams 的自定义 Java 运算符 简介 在成长型市场区域中,任何解决方案提供商面临的首要挑战是可用数据的方言和语言学的不一致性.由于成长型市场区域中拥有包括英语在内的多种官方语言,所以地区的语言符号逐渐嵌入到了英语符号中.因此,您首先需要执行音译来实现数据中的一致性,然后再继续执行处理/文本分析. 如果使用预定的语言,那么数据音译会为您提供更统一.更一致的结果.本文将介绍使用 InfoSphere Streams 的自定义 Java 运

java运算符总结

下面这个例子向大家展示了如何随同特定的运算符使用主数据类型.从根本上说,它是同一个例子反反复复地执行,只是使用了不同的主数据类型.文件编译时不会报错,因为那些会导致错误的行已用//!变成了注释内容.   //: AllOps.java // Tests all the operators on all the // primitive data types to show which // ones are accepted by the Java compiler. class AllOps

java运算符的先后顺序

问题描述 java运算符的先后顺序 *= << % sizeof 由低至高的正确顺序 求大神 解决方案 http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html 解决方案二: 首先,java没有sizeof这个运算吧,其次,算术运算符优先移位运算符,而算术运算符之间按先后顺序. 所以顺序应该是,有高到低应该是:*=,%,<< 解决方案三: 苏小喵的很全,但不是很容易记忆.我有两条规则可以帮你迅速记住谁先谁后(最里的小括

java运算符的优先级和%取模

问题描述 java运算符的优先级和%取模 int a=2 ; int b=a+3*a++ ; b的输出值为什么是8 不是9吗怎么变成8啦 解决方案 ++优先级虽然高,但是第一个a编译器先对它取值了.也许你觉得第一个a应该是a自增1以后的值.但是编译器不这么认为.这种代码在C++中是未定义行为的代码,换言之语法规范没有规定结果是多少,不同的编译器可以产生不同的结果.我不清楚Java中有没有规定,但是可以肯定的是,这种模棱两可的代码绝对不要在你写程序的时候写出来. 解决方案二: 这段代码的正确写法取

JavaScript中的运算符种类及其规则介绍_基础知识

JavaScript中的运算符有很多,主要分为算术运算符,等同全同运算符,比较运算符,字符串运算符,逻辑运算符,赋值运算符等.这些运算符都有一些属于自己的运算规则,下面就为大家介绍一下JavaScript中的运算符. 一.JavaScript运算符的种类 1.算术运算符:+ . - .* . / . % . -(一元取反) . ++ . -- 2.等同全同运算符:== . ===. !== . !=== 3.比较运算符:< . > . <= . >= 4.字符串运算符:< .

Java 运算符

Java运算符其实没什么可以说的,只需要按照数学上的内容进行即可.但是有几点还是需要进行理解和梳理的:自增(++)自减(--)运算符说白了就是在自己的基础上进行加1或者减1; class oprtator{ public static void main(String[] args) { int i = 10; i++;//相当于:i = i+1 System.out.println("i++等于:"+i); int b = 10; b--;//相当于:b=b-1 System.out

【C++】C++运算符重载的规则

本篇博客讲解: 运算符重载的规则,以及实例 运算符重载的规则 被重载的运算符必须是已经存在的C++运算符,不能重载自己创建的运算符. 运算符被重载之后,原有功能仍然保留.只是扩展了原有功能. 重载不能改变运算符运算对象的个数. +运算符具有两个操作数,在+运算符函数作为类(例如上个例子中的CTime)的成员函数的时候,有一个参数是隐含的,也就是当前的对象,使用this指针来引用. 另一个参数通过函数参数指定. 可以重载的运算符: 1.算术运算符:+,-,*,/,%, 2.逻辑运算符:&&,

在Word2003中对禁止复制的网页进行常规操作

  ①打开Word2003,单击菜单栏--文件--打开. ②选择网上邻居,在文件名里面输入网站地址. ③OK,Word会自动连接到这个网站上,在页面显示相关内容. ④我们可以对内容进行复制粘贴等一系列常规操作.