Java基础 算数、关系、逻辑、赋值、字符串、三元运算符

鳄鱼君

发表文章数:642

热门标签

,

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Java » Java基础 算数、关系、逻辑、赋值、字符串、三元运算符

算数运算符

一个表达式当中有多个运算符,运算符有优先级,不确定的话可以加小括号:

  1. + 求和
  2. 相减
  3. * 相乘
  4. /
  5. % 求余数【取模】
  6. ++ 自加1
  7. – – 自减1
public class OperatorTest
{
	public static void main(String[] args){
		int i = 3;
		int j = 13;

		System.out.println( i + j );// 16
		System.out.println( i - j );// -10
		System.out.println( i * j );// 39
		System.out.println( i / j );// 0
		System.out.println( j % i );// 1

		int k = 10;
		k ++; 
		System.out.println(k); // 11
		
		int q = 10;
		++ q;
		System.out.println(q); // 11
	}
}

++运算符可以出现在变量前/后,但是需要注意两者的区别:

public class OperatorTest
{
	public static void main(String[] args){
		int a = 100;
		int b = a ++; // 先赋值,再进行自加1
		System.out.println(a); // 101
		System.out.println(b); // 100

		int c = 80;
		int d = ++ c; // 先自加1,再赋值
		System.out.println(c); // 81
		System.out.println(d); // 81

		int e = 100;
		System.out.println(e ++); // 100
		System.out.println(e);// 101
		
		int f = 50;
		System.out.println(++ f); // 51
		System.out.println(f);// 51

	}
}

练习:

public class OperatorTest
{
	public static void main(String[] args){
		int a = 100;
		System.out.println(a ++);//100 a=101
		System.out.println(++ a);//102 a=102
		System.out.println(-- a);//101 a=101
		System.out.println(a --);//101 a=100
		System.out.println(a --);//100 a=99
		System.out.println(a);//99

	}
}

关系运算符

  1. > 大于
  2. >= 大于等于
  3. < 小于
  4. <= 小于等于
  5. == 等于
  6. != 不等于
  7. =关系运算符,==赋值运算符,关系运算符的结果一定是布尔类型:true/false

关系运算符比较的是变量保存的值之间的大小:

public class OperatorTest
{
	public static void main(String[] args){
		int a = 10;
		int b = 20;
		System.out.println(a > b);//false
		System.out.println(a >= b);//false
		System.out.println(a < b);//true
		System.out.println(a <= b);//true
		System.out.println(a == b);//false
		System.out.println(a != b);//true

	}
}

逻辑运算符

逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型。

  1. & 与 两边算子都是true,结果true
  2. | 或 两边算子只要有一个true,结果true
  3. ! 非 !false就是ture,!true就是false,单目运算符
  4. ^ 异或 两边的算子只要不一样,结果true
  5. && 短路与
  6. || 短路或

短路与/短路或和与/或最终的运算结果都是相同的,只不过短路与/或存在短路现象!

public class OperatorTest
{
	public static void main(String[] args){
		System.out.println( 4 > 3 & 3 < 2);//false
		System.out.println( 4 > 3 | 3 < 2);//true
		System.out.println( !false );//true
		System.out.println( 4 > 3 ^ 3 < 2);//true 

		System.out.println( 4 > 3 && 3 < 2);//false  
		System.out.println( 4 > 3 || 3 < 2);//true  

	}
}

短路与和逻辑与的区别:

public class OperatorTest
{
	public static void main(String[] args){
		int x = 10;
		int y = 9;


		//与,x < y 为false,结果肯定是false,但是后者也执行
		System.out.println(x < y & ++x < y);//false  
		System.out.println(x);//11,++x < y已经运算完成
		
		int z = 10;
		int q = 9;

		//短路与,z < q为false,结果肯定是false,所以后者就不再执行
		System.out.println(z < q && ++z < q);//false  
		System.out.println(z);//10,++z < q没有运算
	}
}

从某个角度来说,短路与更加只能,由于后面的表达式可能不执行,所以执行效率较高,这种方式在实际开发者使用较多。但是,不排除某些特殊情况,需要两边的表达式都执行,此时必须使用逻辑与!第一个表达式结果为false,会发生短路与,第一个表达式为true,会发生短路或!

赋值运算符

赋值运算符包括以下几种:

    基本的赋值运算符:

  1. =
  2. 扩展的赋值运算符:

  3. +=
  4. -=
  5. *=
  6. /=
  7. %=

赋值运算符的优先级:先执行等号右边的表达式,将执行结果赋值给左边的变量:

public class OperatorTest
{
	public static void main(String[] args){
		int i = 10;
		System.out.println(i);//10
		i = i + 3;
		System.out.println(i);//13

		int q = 10;
		q += 3; //等同于:q = q + 3;
		System.out.println(q);//13
	}
}

=和+=运算符之间的区别:

public class OperatorTest
{
	public static void main(String[] args){
		// 大容量转换为小容量需要加强制类型转换符
		byte i = 10;
		i = (byte)(i + 3);
		System.out.println(i);

		byte x = 10;
		x += 3;//等同于 x = (byte)(x + 3),不等同于 x = x + 3
		System.out.println(x);

		// +=默认会进行强制类型转换
	}
}

扩展类的赋值运算符不改变运算结果类型,假设最初变量的类型为byte类型,无论怎么追加或追减,最终该变量的数据类型还是byte类型!

字符串连接运算符

+运算符在Java语言中有两个作用:加法运算,求和;字符串的连接运算。当+运算符两边的数据都是数字的话,一定是进行加法运算;当+运算符两边的数据只要有一个数据是字符串,一定会进行字符串连接运算,并且,运算之后的结果还是一个字符串类型!

public class OperatorTest
{
	public static void main(String[] args){
		
		System.out.println(10 + 10);//求和
		System.out.println(10 + "10");//字符串连接

		int a = 10;
		int b = 10;
		System.out.println("10 + 10 = " + a + b);//"10 + 10 = 1010"
		System.out.println("10 + 10 = " + (a + b));//"10 + 10 = 20"

		System.out.println(a + "+"+ b + "=" + (a + b));//"10+10=20"
		a = 200;
		b = 300;
		System.out.println(a + "+"+ b + "=" + (a + b));//"200+300=500"

	}
}

借助引用数据类型String来进行字符串拼接:

public class OperatorTest
{
	public static void main(String[] args){

		// int 是基本数据类型
		// String 是引用数据类型,是字符串类型
		int i = 10;
		String j = "鳄鱼君";

		String name = "鳄鱼君";
		System.out.println("hello ," + name);
	}
}

三元运算符

三元运算符/三目运算符/条件运算符,语法规则:布尔表达式 ? 表达式1 : 表达式2,如果布尔表达式为true,执行表达式1,否则执行表达式2.

public class OperatorTest
{
	public static void main(String[] args){
		// 布尔类型的变量
		boolean sex = false;
		// 编译报错,因为它不是一个完整的Java语句
		//sex ? '男' : '女';

		char q = sex ? '男' : '女';
		System.out.println(q);//女

		sex = true;
		q = sex ? '男' : '女';
		System.out.println(q);//男

		// 编译报错,类型不兼容,不考虑运行结果
		// sex = false;
		// char c = sex ? "男" : '女';

		System.out.println(sex ? '男' : "女");//男
	}
}
标签:

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Java基础 算数、关系、逻辑、赋值、字符串、三元运算符》 发布于2020-08-01

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

5 + 3 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册