Java基础知识(二)& 运算符

本文详细介绍了Java中的各种运算符,包括算数运算符、自增自减运算、赋值运算符、关系运算符、逻辑运算符以及三元运算符的用法和示例,帮助读者理解和掌握Java编程的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2 运算符

2.1算数运算符

符号说明
+加法
-减法
*乘法
/除法(如果符号前后都是整数,结果取整数;如果有一位是小数,结果正常)
%模(取余数)
package week03;

public class SuanshuYunsuanfu {

	public static void main(String[] args) {
		int i=10;
		int j=3;
		float a=4.0F;//or  float a=(float)4.0;
		int add=j+i;//推荐使用
		System.out.println("i+j="+add);
		
		int sub=i-j;
		System.out.println("i-j="+sub);
		
		int mul=i*j;
		System.out.println("i*j="+mul);
		 
		int div=i/j;
		System.out.println("i/j="+div);
		
		float x=i/a;
		System.out.println("i/a="+x);
		
		int mo=i%j;
		System.out.println("i%j="+mo);
		
	}

}

运行结果:

i+j=13
i-j=7
i*j=30
i/j=3
i/a=2.5
i%j=1

注意“+”遇到字符串结果任为字符串



package week03;



public class JiaChar {

	public static void main(String[] args) {
		int i =10;
		int j=5;
		String s="I love java";
		String i_s=i+s;
		System.out.println("i+s="+i_s);
		
		System.out.println(i+j+"");
		System.out.println(i+j+""+5);
		System.out.println(i+""+j);
		
		

	}

}

运行结果为:

i+s=10I love java
15
155
105

2.2自增自减运算符(属于算数运算符)

1、格式
变量++ ->后自加
++变量 ->前自加
变量-- ->后自减
–变量 ->前自减

2、使用
1)、单独使用: ++ – 单独一句,没有和其他的语句使用时,自增和自减只变化1,不管符号在前还是在后都是先运算

2)、混合使用:-- ++(和其他语句混合使用,例如:赋值语句,输出语句)
​ a、符号在前:先运算,再使用运算后的值
​ b、符号在后:先使用原值,使用完毕之后,自身再运算。

package week03;

public class SelfZengJian {

	public static void main(String[] args) {
		int i =15;
		i++;
		System.out.println("i="+i);
		System.out.println("====================");
		
		System.out.println("符号在前的情况如下:");
		int j =10;
		int jieguo=++j;
		System.out.println("j="+j);
		System.out.println("jieguo="+jieguo);
		
		System.out.println("符号在后的情况如下:");
		int z=50;
		int jieguo01 = z++;
		System.out.println("jieguo01="+jieguo01);
		System.out.println("z="+z);
		System.out.println("====================");
		int b=80;
		System.out.println(b++); 
		System.out.println(b);
		
		System.out.println("更复杂的混合如下:");
		int c=3;
		int d=5;
		int jieguo02=c++ + --d + ++c;
		System.out.println("jieguo02="+jieguo02);
		System.out.println(d);

	}

}

运行结果如下:

i=16

符号在前的情况如下:
j=11
jieguo=11
符号在后的情况如下:
jieguo01=50

z=51

80
81
更复杂的混合如下:
jieguo02=12
4

//特别例子
package week03;

public class deno {

	public static void main(String[] args) {
		int c=10;
		c=c++;
		System.out.println(c);

	}

}

运行结果如下:

10

2.3 赋值运算符

1)、基本赋值运算符

= -->先看等号右边的,再将右边的数据赋值给等号左边的变量

2)、复合赋值运算符

+= -= *= /= %=

int i=10;
i+=2  

i+=2  //为了方便计算,可以看成i=i+2,但是它们两个不能完全等价
package week03;

public class FuzhiYunsuanfu {

	public static void main(String[] args) {
		    int i =5;
		    i+=5;
		    System.out.println(i);

	}

}

//运行结果:10
package week03;

public class FuzhiYunsuanfu {

	public static void main(String[] args) {
		    short i =5;
		    i=i+5;   //改为i+=5就不会报错
		    System.out.println(i);

	}

}

//报错:Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	//Type mismatch: cannot convert from int to short
//需要强制转为short类型,因为等号右边自动提升为int类型,需要手动强转,改为如下:

package week03;

public class FuzhiYunsuanfu {

	public static void main(String[] args) {
		    short i =5;
		    i=(short)(i+5);
		    System.out.println(i);

	}

}


注意:byteshortfloat遇到复合赋值运算符,jvm自动转型

2.4关系运算符(比较运算符)

1)、结果:true或者false

2)、作用:作条件判断使用

符号说明
==如果符号前后的结果相等为true,否则为false
>如果符号前的结果大于符号后的结果为true,否则为false
<如果符号前的结果小于符号后的结果为true,否则为false
>=如果符号前的结果大于或者等于符号后的结果为true,否则为false
<=如果符号前的结果小于或者等于符号后的结果为true,否则为false
!=如果符号前后的结果不相等为true,否则为false
package week03;

public class CompareYuansuanfu {

	public static void main(String[] args) {
		int x=15;
		int y=30;
		boolean re=x==y;
		System.out.println(re);//false
		System.out.println(x>y);//false
		System.out.println(x<y);//true
		System.out.println(x>=y);//false
		System.out.println(x<=y);//true
		System.out.println(x!=y);//true

	}

}

2.5逻辑运算符

作用:连接多个boolean类型的结果

符号说明
&&(与,并且)有假则假,符号前后有一个结果是假结果为false,整体为false,否则为真
||(或者)有真则真,符号前后有一个结果是假结果为true,整体为true,否则为假
!(非,取反)不是true,就是false,不是false,就是true
^(异或)符号前后结果一样为false,不一样为true
package week03;

public class LogicYunsuanfu {

	public static void main(String[] args) {
		int x=10;
		int y=20;
		int z=15;
		System.out.println((x<y)&&(x==z));//false
		System.out.println((x<y)||(x==z));//true
		System.out.println((x<y)^(x==z));//true
		System.out.println(!(x<y));//false

	}

}

短路与和短路或的说明

符号说明
&如果符号前后都是布尔类型,有假则假,但是如果符号前为false,符号后的判断会继续执行
如果符号前后都是数字,相当于位运算符
&&双与,有假则假,但是有短路效果,如果符号前为false,符号后的判断就不会执行
|单或,如果符号前后都是布尔类型,有真则真,但是如果符号前为true,符号后的判断会继续执行
如果符号前后都是数字,相当于位运算符
||双或,有真则真,但是有短路效果,如果符号前为true,符号后的判断就不会执行
//&
package week03;
public class DemoDuanlu {
	public static void main(String[] args) {
		int i =10;
		int j=20;
		boolean res=(++i>100)&(j-->10);
		System.out.println(res);//false
		System.out.println(i);//11
		System.out.println(j);//19
	}

}

//&&
package week03;
public class DemoDuanlu {
	public static void main(String[] args) {
		int i =10;
		int j=20;
		boolean res=(++i>100)&&(j-->10);
		System.out.println(res);//false
		System.out.println(i);//11
		System.out.println(j);//20
	}

2.6三元运算符

1、格式:

boolean 表达式?表达式1:表达式2

2、解释:

先判断表达式,如果是true,执行表达式1,否则执行表达式2

package week03;

public class ThreeYunsuanfu {

	public static void main(String[] args) {
		int grade=66;
		int grade1=90;
		int grade2=87;
		int temp=grade>grade1?grade:grade1;
		int max=temp>grade2?temp:grade2;
		System.out.println(max);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值