专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java常用运算符、三目运算、分支语句以及循环语句

temp10 2024-09-27 02:48:34 java教程 10 ℃ 0 评论

一、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时,跳出循环

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表