查看“Java运算符与表达式(二)”的源代码
←
Java运算符与表达式(二)
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
====关系运算符==== *关系运算符,又称比较运算符,用于比较两个操作数的大小,运算结果是boolean型。 *当运算符对应的关系成立时,运算结果是true。 *当运算符对应的关系不成立时,运算结果是false。 <nowiki>10 > 9 //运算结果是true 10 < 9 //运算结果是false 10 >= 9 //运算结果是true 10 <= 9 //运算结果是false 10 == 9 //运算结果是false 10 != 9 //运算结果是true</nowiki> *关系运算符的>、>=、<、<=两边的操作数只能是数值类型。 *关系运算符的==、!=两个的操作数可以是数值类型,也可以是引用类型(暂时不考虑) ====逻辑运算符==== *逻辑运算符用于操作两个布尔型的变量或常量。逻辑运算符包括: *'''&&:逻辑与运算符''',前后两个操作数必须都是true才返回true,否则返回false。例如,2>8&&9>2的结果为false。 <nowiki>int a = 2; int b = 8; System.out.println(a < b && b> 2); //输出表达式的运算结果为true System.out.println(a > b && b> 2); //输出表达式的运算结果为false;</nowiki> *逻辑与运算符具备'''短路效果''',即当前面的操作数(a>b)为false,后面的操作数对应的表达式不再执行,直接返回false。 *'''||:逻辑或运算符''',只要两个操作数中有一个是true,就可以返回true,否则返回false。 <nowiki>int a = 2; int b = 8; //输出表达式的运算结果为true System.out.println(a < b || b> 2); //a的值为2,b的值为8 System.out.println(a < b || b< 2); //此时,输出表达式的运算结果仍然为true</nowiki> *逻辑或运算符具备短路效果,即当前面的操作数(a>b)为true,后面的操作数对应的表达式不在执行,直接返回true。 *'''!:逻辑非运算符''',只需要一个操作数,如果操作数为true,则返回false;如果操作数为false,则返回true。例如: System.out.println(!(2 > 8)) //运算结果为true ====位运算符(选学)==== *<nowiki>*</nowiki>任何信息在计算机中都是以二进制的形式存在的,位运算符对操作数中的每个二进制位都进行运算。位运算符包括: *&:按位与。当两位同时为1时才返回1。 *|:按位或。只要有一位为1即可返回1。 *~:按位非。单目运算符,将操作数的每一位(包括符号位)全部取反。 *^:按位异或。当两位相同时返回0,不同时返回1. *>>:右移运算符。例如,11>>2; // 则是将数字11右移2位。 *<<:左移运算符。例如,5 <<2; //则是将数字5左移2位。 *>>>:无符号右移运算符。 *原理: <nowiki>A = 0011 1100 B = 0000 1101 ----------------- A&b = 0000 1100 A | B = 0011 1101 A ^ B = 0011 0001 ~A= 1100 0011</nowiki> * *拓展:一个整数的二进制表达 int i = 5; String b = (Integer.toBinaryString(i)); ====括号运算符==== *圆括号“()”也是Java的运算符,圆括号是用来处理表达式优先级的。 *例如,一个简单的加减乘除表达式为例: 3+5+4*6-7 //未加括号的表达式 *相信根据读者现在所学过的数学知识,这道题应该很容易解开。利用加减乘除的优先级(*、/的优先级大于+、-)来计算,这个表达式的结果为25。如果想先计算3+5+4、6-7,然后再将计算后的两个数相乘,就必须将3+5+4及6-7分别加上括号,成为下面的表达式: (3+5+4)*(6-7) // 加上括号的表达式。 *此时,具备圆括号的表达式运算结果为-12,所以圆括号可以改变表达式的处理顺序。 ====三目运算符==== *三目运算符只有一个:?:,三目运算符的语法格式如下: *逻辑表达式?表达式1:表达式2 *三目运算符的规则是:'''先对第一个操作数逻辑表达式求值,如果逻辑表达式返回true,则返回第二个操作数表达式1的值;如果逻辑表达式返回false,则返回第三个操作数表达式2的值'''。例如: <nowiki>String str = 5 > 3 ? "5大于3" : "5不大于3"; System.out.println(str); //输出“5大于3”</nowiki> 同样的普通if语句,如果用三目运算符来做,更简单: <nowiki>int value = 113; if(value >100){ System.out.println("空气质量不好!"); }else{ System.out.println("空气质量很好!"); }</nowiki> 可以写为: <nowiki>int value = 113; String str = value>100 ?"空气质量不好!" :"空气质量很好!"; System.out.println(str);</nowiki> 面馆例题: <nowiki> package demo1; import java.util.Scanner; public class happy08 { public static void main(String[] args) { // TODO Auto-generated method stub //int a = 10 ;int b = 20; //System.out.println(a==b); Scanner sc = new Scanner(System.in); System.out.println("客官,您是堂吃还是外卖?1.堂吃; 2.外卖"); String s = sc.next(); String s2 = (s.equals("1")) ? "堂吃一位" : "外送一位"; System.out.println(s2); } } </nowiki> ==Java练习题== *赋值运算符:假设int a = 10; int b = 20; int c = 30; 打印 c = a + b、c += a、c += a、c += a、c += a的值。 *算术运算符:假设int a = 10; int b = 20; int c = 25; int d = 25; 打印a+b、a-b、a*b、b/a、b%a、c%a、a++、a--、d++、++d *计算n的阶乘(n=3,4,5,6,7) *这段代码运行后,i等于多少?j等于多少?k等于多少? int i = 0; int j = i++; int k = --i; *关系运算符:假设int a = 10;int b = 20; 打印a == b、a != b、a > b、a < b、b >= a、b <= a的值 *逻辑运算符:假设boolean a = true; boolean b = false; 打印a && b、a || b 、!(a && b) 的值。 *快速计算2*16 返回 [[Java程序设计]]
返回至
Java运算符与表达式(二)
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息