322java中的关系与条件运算符.docVIP

  • 1
  • 0
  • 约5.19千字
  • 约 9页
  • 2017-09-02 发布于浙江
  • 举报
322java中的关系与条件运算符

语言基础 3.2.2 关系与条件运算符 关系运算符是比较两个数值并决定它们的关系。比如!=在如果两个运算对象不相等的情况下返回true。以下这个表格总结了关系运算符: 运算符 用法 在什么情况下返回true op1 op2 op1大于op2的时候 = op1 = op2 op1大于等于op2的时候 op1 op2 op1小于op2的时候 = op1 = op2 op1小于等于op2的时候 == op1 == op2 op1等于op2的时候 != op1 != op2 op1不等于op2的时候 下面是一个例子RelationalDemo,它定义了三个整型数并且使用关系运算符来比较它们,如下: 程序的输出为: 变量数值... i = 37 j = 42 k = 42 大于... i j = false j i = true k j = false 大于等于... i = j = false j = i = true k = j = true 小于... i j = true j i = false k j = false 小于等于... i = j = true j = i = false k = j = true 等于... i == j = false k == j = true Not equal to... i != j = true k != j = false 关系运算符经常用在条件运算符中来构造更复杂的判断表达式。JAVA变成语言支持六种条件运算符:五个双元运算符和一个单元运算符,如下表所示; 运算符 用法 什么情况返回true op1 op2 op1 和 op2都是true,有条件地计算op2 || op1 || op2 op1 或者 op2是true,有条件地计算op2 ! ! op op为false op1 op2 op1 和 op2都是true,总是计算op1和op2 | op1 | op2 op1 或者 op2是true,总是计算op1和op2 ^ op1 ^ op2 如果op1和op2是不同的,也就是说,有其中一个运算对象是真的而不是两个都为真的时候   运算符可以完成条件AND的操作。你可以使用两个不同的关系运算符和来决定是否两个关系都为true。下面的一行代码使用了这个技术来决定是否数组的索引处在两个边界之间。它决定了是否索引都大于等于0并且小于等于NUM_ENTRIES(它是在之前被定义为常数)。   0 = index index NUM_ENTRIES   这里注意在一些实例中,第二个运算对象可能不用运算,因为如果第一个运算对象是false,则结果就一个是false,因此不用在计算第二个运算对象了。你看看以下的代码: (numChars LIMIT) (...)   运算符只有在两个运算对象都为true的时候,才返回true。因此,如果numChars大于等于LIMIT的时候,左边的运算对象就为false,这时就不用在计算右边的运算对象就返回了数值false。在这个例子中,编译器将不会计算右边的运算对象。如果右边运算对象有副效应的的话(比如读一个流、更新一个数值或者进行一个计算)这个有重要的含义。   当两边的运算对象都是boolean(布尔型),运算符号跟执行相同运算。但是,总是要计算两边的运算对象然后再在两个运算对象同为true的时候才返回true。同样地,当运算对象都为boolean(布尔型)的时候,|执行与操作符号||一样的功能。这个|运算符总是要计算两边的运算对象然后在最少有一边为true的时候才返回true。当它们的运算对象为数字的时候, 和|是按位操作的。 3.2.3 移位和逻辑运算符   移位运算符通过对第一个运算对象左移或者右移位来对数据执行位操作。下面的这个表总结了JAVA编程语言中有效的移位运算符。 运算符 用法 操作 op1 op2 将op1右移op2个位 op1 op2 将op1左移op2个位 op1 op2 将op1右移op2个位(无符号的)   每一个运算符移动左边的运算对象的位数都是由右边的运算符给出的。这个移位的方向取决于运算符本身。比如,下面的语句是实现将整数13右移1位的目的: 13 1;   13的二进制为1101.右移一位的结果为110,即为十进制的6.左边的位用零来填充。下面的表给出了JAVA编程语言提供的四种运算符来对它们的运算对象执行按位操作: 运算符 用法 操作 op1 op2 按位与 | op1 | op2 按位或 ^

文档评论(0)

1亿VIP精品文档

相关文档