Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3223030
  • 博文数量: 269
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1988
  • 用 户 组: 普通用户
  • 注册时间: 2019-10-28 13:40
文章分类

全部博文(269)

文章存档

2022年(42)

2021年(155)

2020年(50)

2019年(22)

我的朋友

分类: Java

2019-11-01 13:39:14

1.Java中简单的赋值运算符

最基本的赋值运算符是=”,表示将右边表达式的值赋值给左边的变量。

扩展的赋值运算符

+=

-=

*=

/=

%=

都表示先将左边与右边做相应的运算,再赋值给左边。

注意:扩展的赋值运算符隐含了强制类型转换。

public class FuZhiYunSuanFu{

public static void main (String[]args){

//10赋值给int类型的变量;

int i = 10;

System.out.println("i:"+i);//10

//+= 把左边和右边的数据做加法操作,结果赋值给左边

i += 20;

//i = i+20;

System.out.println("i:"+i);//30

//注意:扩展的赋值运算符底层隐含了强制类型转换

short s = 10;

s += 20;//s short类型 20int类型

//s = (short)(s+20);

System.out.println("s:"+s);//30

}

}

2.关系运算符

关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。关系运算符的运算结果都是boolean类型,要么是true,要么是false。注意不要把“== ” 误写为“=”,“==”是关系运算(等于),“=”是赋值运算。

进行简单的代码检验:

public class GuanXiYunSuan{

public static void main(String[]args){

//定义变量

int i = 10;

int j = 20;

int k = 10;

//==

System.out.println(i == j);

System.out.println(i == k);

System.out.println("-----------");

//!=

System.out.println(i != j);

System.out.println(i != j);

System.out.println("-----------");

//>

System.out.println(i>j);

System.out.println(i>k);

System.out.println("---------");

//>=

System.out.println(i >= j);

System.out.println(i >= k);

System.out.println("----------");

//不小心吧==写成了=

//j的值赋值给了i,然后输出i

System.out.println(i=j);

}

}

3.逻辑运算符

3.1

逻辑运算符把各个运算的表达式连接起来,组成一个逻辑表达式,以判断程序中的表达式是否成立。

逻辑运算的结果肯定是boolean类型,要么是true要么是false

& 逻辑与 并且的关系,只有表达式全部为true时,结果才为true

| 逻辑或 或者的关系,只有表达式全部为false是,结果才为false

^ 逻辑异或 a^b, ab的结果不同,异或结果为true,相同为false

! 逻辑非 取反,!aa的结果正好相反

代码演示

/*

逻辑运算符

*/

public class LuoJiYunSuanFu{

public static void main(String[] args){

//定义变量

int i = 10;

int j = 20;

int  k =30;

//& falsefakse

System.out.println((i>j)&(i>k));// false&false

System.out.println((ik));//ture&false

System.out.println((i>j)&(i

System.out.println((i

System.out.println("----------");

//| tureture

System.out.println((i>j)|(i>k));// false|false

System.out.println((ik));//ture|false

System.out.println((i>j)|(i

System.out.println((i

System.out.println("-----------");

//^相同为false,不同为true

System.out.println((i>j)^(i>k));// false^false

System.out.println((ik));//ture^false

System.out.println((i>j)^(i

System.out.println((i

System.out.println("-----------");

//!

System.out.println((i>j));// false

System.out.println(!(i>j));//!false

System.out.println(!!(i>j));//!!false

System.out.println(!!!(i>j));//!!!false

System.out.println("-----------");

}

}

3.2短路逻辑运算符

在逻辑与运算中,如果一个表达式结果为false,那么整个运算结果其实已经可以确定了,肯定为false,这时,其实没必要再判断其他参与运算的表达式了。同样在逻辑或运算中,如果一个表达式为true,那么结果也可以确定为true了。

&& 逻辑与 运算结果与&相同,但具有短路效果

一旦发现左边的表达式结果为false,右边的表达将不再参与运算

|| 逻辑或 运算结果与|相同,但具有短路效果

一旦发现左边的表达式结果为true,右边的表达将不再参与运算

在我们的代码书写中,逻辑与和或的运算,实际使用的就是短路的逻辑运算符。

代码展示:

/*

短逻辑运算符

*/

public class DuanLuoJiYunSuanFu{

public static void main(String[] args){

//定义变量

int i = 10;

int j = 20;

int  k =30;

int h = 40;

//& falsefakse

System.out.println((i>j)&&(i>k));// false&false

System.out.println((ik));//ture&false

System.out.println((i>j)&&(i

System.out.println((i

System.out.println("----------");

//| tureture

System.out.println((i>j)||(i>k));// false|false

System.out.println((ik));//ture|false

System.out.println((i>j)||(i

System.out.println((i

System.out.println("-----------");

//&&&

System.out.println((i++>50)&&(j++>50));

//System.out.println((j++>50)&(i++>50));

System.out.println("i:"+i);

System.out.println("j"+j);

//|||

System.out.println((k++<100)||(h++>100));

System.out.println("k:"+k);

System.out.println("h:"+h);

}

}

4.三元运算符

三元运算符语法格式:

关系表达式 ? 表达式1 : 表达式2;

说明:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用。

代码一:两个数比大小

public class SanYuanYunSuanFu{

public static void main(String[]args){

//定义两个变量

int a = 5;

int b = 3;

//获取两个数中的较小值

int min = a < b ? a : b;

//输出结果

System.out.println("min"+min);

}

}

代码二 比较两位同学成绩:

/*

两位同学比较成绩

已知两位同学的语文成绩分别为80100,请用程序实现判断两位同学成绩是否相等。

定义两个变量记录两位同学成绩

使用三元运算符判断成绩是否相同,相同为true,不同为false

输出结果

Ji

*/public class ChengJi{

public static void main(String[]args){

int chengJi1 = 80;

int chengJi2 = 100;

boolean b = chengJi1 == chengJi2 ? true:false;

System.out.println("b:"+b);

}

}

代码三:求三人当中最低的身高

/*

求三个人身高最低的

*/

public class SanGehesang{

public static void main(String[]args){

int height1 = 150;

int height2 = 210;

int height3 = 165;

//定义一个临时变量x

int x = height1

//

int y = x < height3? x:height3;

//输出结果

System.out.println("最低身高为:"+y);

}

}

5.算术运算符

5.1Java程序中,整数运算,结果只能得到整数,想得到小数,需要浮点数参与运算。

整数的除法运算得到的是商

整数的取余运算得到的是余数

算术运算符int类型除法遇到小数,可使用输出语句System.out.println(a*1.0/b);来实现结果出现小数;在java运算符中:整数相除只能得到整数。得到小数必须有浮点数的参与操作。

/*

算术运算符

*/

public class SuanSuYunSuan01 {

public static void main(String[] args) {

//定义两个变量

int a = 6;

int b = 4;

System.out.println(a + b);

System.out.println(a - b);

System.out.println(a * b);

System.out.println(a / b);

System.out.println(a % b);

//除法得到的是商,取余得到是余数

//整数相除只能得到整数,要想得到小数,必须有浮点数的参与

System.out.println(6*0.1/ 4);

}

}

5.2字符的“+”操作

char类型的字符参与到算术运算的时候,会取字符在计算机底层对应的数值来进行计算。有几个连续的字符需要简单记忆一下:'A’对应的是65 AZ是连续的

a’对应的是97,从az是连续的。

0’对应的是48,从09是;连续的。

char类型的数据参与算术运算,会自动提升为int类型,使用的是字符在计算机底层中对应的十进制整数值。

记住三个字符对应的数值:

A---- 65

a---- 97

0---- 48

不同的基本数据类型参与运算时,整个算术表达式的类型会自动进行提升,提升为参与运算的最高等级。

提升规则:

byte类型,short类型和char类型将被提升到int类型

整个表达式的类型自动提升到表达式中最高等级操作数相同的类型

等级顺序:byte,short,char > int > long > float > double

/*

字符的"+"操作

*/

public class OperatorDemo02 {

public static void main(String[] args) {

//定义两个变量

int i = 10;

char c = 'A'; //'A'的值是65

c = 'a'; //'a'的值是97

c = '0'; //'0'的值是48

System.out.println(i + c);

//char ch = i + c;

//char类型会被自动提升为int类型

int j = i + c;

System.out.println(j);

//int k = 10 + 13.14;

double d = 10 + 13.14;

}

}

5.3字符串的“+”操作

+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。在以后的输出语句中,我们可以使用字符串连接符使输出结果更加清晰。

/*

字符串的 + 操作

*/

public class ZiFuChuanCaoZuo{

public static void main(String[]args){

System.out.println("LOVE"+"JAVA");//LOVEJAVA

System.out.println("JAVA"+666);//JAVA666

System.out.println(666+"JAVA");//666JAVA

System.out.println("老铁"+6+66);//老铁666

System.out.println(6+66+"老铁");//72老铁

//定义两个变量 保存a b 的值

String a = "杰克马";

String b ="亿表人财";

//用字符串拼接成一句话

System.out.println(a+b);//杰克马亿表人财

String xingMing = "XX";

int age = 18;

System.out.println("我叫"+xingMing+",今年:"+age+"");

}

}

5.4自增自减运算符

自增(或自减自减)运算符作用是在运算结束前(前置自增自减运算符)或后(后置自增自减运算符)将变量的值加(或减)一。单独使用,前置和后置没有区别,结果一样。

参与运算:

前置,运算使用的是自增或自减后的值。(先增后用 ++a

后置,运算使用的是自增或自减前的值。(先用后增 a++

常见用法:单独使用

减减的代码演示:

/*

 -- 运算符

结论:

++ -- 既可以放在变量前,也可以放在变量后;

如果单独使用,在前在后效果一样;

如果复合使用,在前和在后,对于要进行自增或自减的的这个变量来说没有影响,受影响的是其它变量;

++--在变量前时,--a;自己先减,让在和别人运算;

++-- 在变量后时,a--先和别人运算在自己减

注意:代码从上到下 逐行执行!!

*/

public class JianJian{

public static void main (String[] args){

int a = 5;

int b = --a-1;//--a  a会先减1 然后再 4-1,所以 a=4b=3

System.out.println("a:"+a);//4

System.out.println("b:"+b);//3

int c = a-- -1;//由于a--,此时a会先使用原来的值(4)和-1操作。所以 c=3;然后a在自己减1--),所以a最终也会变为3

System.out.println("c:"+c);// 3

System.out.println("a:"+a);//3

//输出的时候,如果用++--也算是符合运算

int d = 5;

int e = 5;

System.out.println("----------");

System.out.println("d:"+ d--);//5

System.out.println("e:"+ --e);//4

System.out.println("----------");

System.out.println("d:"+d);//4

System.out.println("e:"+e);//4

System.out.println();

}

}

阅读(1543) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~