网站首页 > java教程 正文
一、Java的运算符,分为四类:
算数运算符、关系运算符、逻辑运算符、位运算符。
算数运算符: + - * / % ++ --
关系运算符: == != > >= < <=
逻辑运算符: && || ! ^ & |
位运算符: & | ~ ^ >> << >>>
1.算数运算符(分为一元运算符和二元运算符,算数运算符操作数必须是数值类型):
一元运算符,只有一个操作数(例如:+1、1++),有正‘+’,负‘-’,自加‘++’,自减‘--‘这四个,
二元运算符有两个操作数,运算符在两个操作数之间(例如:1*1、1%1)。
①”++“和”--“运算符,只允许用于数值类型的变量,不允许用于表达式中,
"++"和”--“可以用于数值变量之前或者之后。
两处使用差别:
”++“和”--“用于数值变量之前,在赋值操作中,先对被”++“或”--“操作变量值先加1或者先减1,然后在进行其他的操作;
"++"和”--“用于数值变量之后,在赋值操作中,先用被”++“或”--“的操作变量值进行其他的操作,然后在对其值加1或者减1。
②二元运算符:加'+',减'-',乘'*',除'/',求余'%'
在算数运算符中,”+“,”-“,”*“,”/“完成加减乘除四则运算,%是求两个操作数相除后的余数。
运算规则和数学运算基本相同,在算数运算中,计算时按照从左向右的顺序计算,乘除和求余优先于加减,不同的是,程序中的乘运算符不可省略,在数学中可写为”y=2x“而程序中必须写为”y=2*x“。
当二元运算的两个操作数的数据类型不同时,运算结果的数据类型和参与运算的操作数的数据类型中精度较高(或位数较长)一致。
2.关系运算符:
关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型(boolean布尔类型)的数值。
等于'==',不等于'!=',大于'>',大于等于'>=',小于'<',小于等于'<='。
注: boolean类型只能比较相等和不相等,不能比较大小
>=的意思是大于或等于,两者成立一个即可,结果为true,<=亦如此,
判断相等的符号是两个等号,而不是一个等号,这个需要特别小心
比较运算符是程序设计中实现数据比较的基础,也是很多逻辑实现的基础,在程序逻辑中,经常通过比较一定的条件,来判断后续的程序该如何执行。
3.逻辑运算符:
逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值,
逻辑运算的数据和逻辑运算符的运算结果是boolean类型,
逻辑与'&&',逻辑或'||',逻辑非'!',逻辑异或'^',逻辑与'&',逻辑或'|'
逻辑运算符表:
a和b是逻辑运算的两个逻辑变量。
两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。
&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。
对于&来说,如果左侧条件为false,也会计算右侧条件的值,而对于&&来说,如果左侧的条件为false,则不计算右侧的条件,这种现象被称作短路现象。
所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。
对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。
所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;
对于 || 运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。
所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。
注:异或相同为false,相反则为true。
利用短路现象:
在程序设计时使用&&和||运算符,不建议使用&和|运算符。
4.位运算符(不常用):
位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。
位与'&',位或'|',位非'~',位异或'^',右移'>>',左移'<<',0填充的右移'>>>'
位运算的位与'&',位或'|',位非'~',位异或'^'与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值boolean型。
右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。
将一个数左移"<<"会使该值乘以2的幂。
将一个数右移>>"会使该值除以2的幂。
右移(补零)运算符,即无符号右移,">>>"永远不会产生负号,因为其符号位总是被补零。 不论被移动数是正数还是负数,左边移进的部分一律补0。
二、Java中的的三目运算:
三目条件运算公式为 x?y:z 其中x的运算结果为boolean类型,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值
例: String s="";
String x="默认值";
s=s.isEmpty()?x:s;
这段代码的意思是:先判断s是否为空(结果是空),然后执行s=x,即执行x
三、Java的分支语句:
1.if 语句
格式用法:
if(布尔表达式)
{
语句;
}
2.if……else 语句
格式用法:
if(表达式)
{
语句1;
}else{
语句2;
}
3.if……else if 多分支语句
格式用法:
if(表达式)
{
语句1;
}
else if
{
语句2;
}
……
4.switch 多分支语句
格式用法:
switch(表达式)
{
case 常量值1:
语句块 1
break ;
case 常量值2:
语句块 2
break ;
……
default:
语句 n+1 ;
break ;
}
注:
1)switch语句中表达式的值必须是整型或字符型,常量值1~常量值n必须也是整型或字符型;
2)switch语句首先计算表达式的值,如果表达式的值和某个case后面的变量值相同,则执行case语句,直到break语句结束;
3)同一个switch语句中,case的常量值必须互不相同。
四、Java 循环结构 - for, while 及 do...while:
顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。
Java中有三种主要的循环结构:
while 循环
do…while 循环
for 循环
在Java5中引入了一种主要用于数组的增强型for循环。
1.while 循环:
while是最基本的循环,它的结构为:
while( 布尔表达式 )
{
//循环内容
}
只要布尔表达式为 true,循环体会一直执行下去。
2.do…while 循环:
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次,它的结构为:
do {
//代码语句
}while(布尔表达式);
注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。
3.for循环:
虽然所有循环结构都可以用 while 或者 do...while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。
for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化; 布尔表达式; 更新)
{
//代码语句
}
关于 for 循环有以下几点说明:
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环后,更新循环控制变量。
再次检测布尔表达式。循环执行上面的过程。
4.Java 增强 for 循环:
Java5 引入了一种主要用于数组的增强型 for 循环。
Java 增强 for 循环语法格式如下:
for(声明语句 : 表达式)
{
//代码句子
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
五、循环汇总的关键字:
1.break 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。
break 的用法很简单,就是循环结构中的一条语句:
break;
2.continue 关键字
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中,continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
continue 就是循环体中一条简单的语句:
continue;
六、for 嵌套循环实例:
for(int i=1; i<=3; i++){
for(int j=1; j<=3; j++){
//输出结果
System.out.println("i = " + i + ", j = " + j);
}
}
第一个 for :定一个整型变量 i, 它的初始值是 1;判断 i 是否小于等于 3;如果成立, i 就自增 1。
第二个 for :定一个整型变量 j, 它的初始值是 1;判断 j 是否小于等于 3;如果成立, j 就自增 1。
循环如下:
先执行外面的循环,
当开始循环的时候,i=1,判断i<=3,然后继续运行,执行内部for循环,j=1,结果是:i=1,j=1
此时循环从j开始,j++,j的值变为2,i仍旧为1,结果是:i=1,j=2
继续运行,j++,j的值变为3,i仍旧为1,结果是:i=1,j=3
当j=4,不满足j<=3,跳出内部for循环,执行外部for循环,此时i++,i的值变为2,继续运行,执行内部for循环,j=1,结果是:i=2,j=1
此时循环从j开始,j++,j的值变为2,i仍旧为2,结果是:i=2,j=2
继续运行,结果是:i=2,j=3
当j=4,不满足j<=3,跳出内部for循环,执行外部for循环,此时i++,i的值变为3,继续运行,执行内部for循环,j=1,结果是:i=3,j=1
继续运行,结果是:i=3,j=2
...
当i循环到j=3时,输出循环结果为:i=3,j=3
当i=4,不满足i<=3时,跳出循环
猜你喜欢
- 2024-09-27 「编程基础」零基础学习Java之运算符
- 2024-09-27 C语言中的“隐形”语法:三目运算符极致解析
- 2024-09-27 Java运算符之算术运算符和举例说明
- 2024-09-27 java运算符顺序(java中运算符的优先顺序)
- 2024-09-27 【学习笔记】分支结构的第三大板块:三目运算符
- 2024-09-27 【java】运算符基础 【java】运算符基础 #运算符
- 2024-09-27 java基本语法之运算符(java语言中的运算符有哪些)
- 2024-09-27 Spring SpEL三元运算符(sql三元运算符)
- 2024-09-27 Java中的运算符(java中的运算符是用来表示某种运算的符号)
- 2024-09-27 Java运算符和表达式(java运算符和表达式答案)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)