4.运算符

1.赋值运算符
在编程语言中将“=”看做是赋值符号,"=="才是等号的正确表达。
变量 = 表达式(将表达式赋值给变量)

package com.bdqn.demo04;

public class Demo01 {

	public static void main(String[] args) {
		// 表达式:一些运算符(+,- ,*,/)和操作数(变量,具体的数据)的结合

		// 赋值运算符=:变量=表达式
		int num1 = 100;

		int a = 10;
		int b = 20;
		int sum = a + b;

	}

}```
**实例**
实例:如何借助变量以及赋值运算符实现两个数据的交换?

```java
package com.bdqn.demo04;

public class Demo03 {

	public static void main(String[] args) {
		//数据交换
		int num1=100;
		int num2=200;
		System.out.println("交换前:");
		System.out.println("sum1="+num1);
		System.out.println("sum2="+num2);
		
		//使用第三个变量来实现交换
		int num3 = num1;
		num1 = num2;
		num2 = num3;
		System.out.println("交换后:");
		System.out.println("sum1="+num1);
		System.out.println("sum2="+num2);

	}

}

2.算数运算符
1.基本运算符:+,-,*,/(除法运算符,取整),%(取余运算符),–,++。
num1/num2 取商:5/2=2;
num1%num2 取余数:5%2=1
实例
实例:键盘输入四位数字的会员卡号,使用“/”和“%”运算符分解获得会员卡各个位上的数字,将各个位上数字求和。

package com.bdqn.demo04;

import java.util.Scanner;

public class Demo05 {

	public static void main(String[] args) {
		// 求解各位数并求和
		// 创建Scanner类对象
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入4位数会员卡号:");
		int card = sc.nextInt();
		System.out.println("会员卡号为:" + card);
		System.out.println("千分位:" + (card / 1000));
		System.out.println("百分位:" + (card % 1000 / 100));
		System.out.println("十分位:" + (card % 1000 % 100 / 10));
		System.out.println("各分位:" + (card % 10));
		int sum = (card / 1000) + (card % 1000 / 100)
				+ (card % 1000 % 100 / 10) + (card % 10);
		System.out.println("各位数之和:" + sum);

	}

}

++/–(自增/自减)
对于单独变量a++和++a来说是没有区别的,a的值最终都加一,a–和–a运算也是如此:

		int a=10;
		System.out.println("a="+a);
		a++;
		System.out.println("a="+a);
		//--自减
		int b=10;
		System.out.println("b="+b);
		b--;
		System.out.println("b="+b);

如果a++和++a参与运算则运算结果不同,
a++先用a的值在加一,++a是先加一再用a的值(先用再加,先加再用)。

		//先运算在加一
		int m=100;
		System.out.println("m="+m);
		int n = m++;
		System.out.println("m="+m);
		System.out.println("n="+n);
		//现加一在运算
		int k=100;
		System.out.println("k="+k);
		int r = ++k;
		System.out.println("k="+k);
		System.out.println("r="+r);

2.复合运算符:复合运算符:+=,-=,*=,/=,%=。

		int a = 100;
		//a=a+200;
		a+=200;
		System.out.println("a="+a);//300
		
		a-=100;//a=a-100
		System.out.println("a="+a);//200
		
		a*=3;//a=a*3
		System.out.println("a="+a);//600
		
		a/=7;//a=a/7
		System.out.println("a="+a);//85
		
		a%=7;//a=a%7 
		System.out.println("a="+a);//1
		

3.关系运算符
关系运算符:>,>=,<,<=,==,!=
关系运算符的结果是布尔值,要么是true,要么是false
运算符 >,>=,<,<=的优先级高于= =,!=
运算符 >,>=,<,<=只支持数值类型的数据比较

4.逻辑运算符
逻辑运算符:&(单与) &&(双与)|(单或)||(短路或)!(非)
参与逻辑运算的表达式需要是boolean类型
逻辑运算的结果是布尔值,true或false
&(单与) &&(双与):

		int a=100;
		int b=200;
		//true & true
		//true && true
		boolean result1=a<b & b>a;
		System.out.println(result1);
		System.out.println("true&true:"+(true&true));
		System.out.println("true&&true:"+(true&&true));
		
		//true & false
		//true && false
		System.out.println("true&false:"+(true&false));
		System.out.println("true&&false:"+(true&&false));
		
		//false & false
		//false && false
		System.out.println("false&false:"+(false&false));
		System.out.println("false&&false:"+(false&&false));

结果显示:只有两边都是true时才能显示正确,不管哪一边有一个false都是错的。

|(单或)||(短路或):

		int a=100;
		int b=200;
		//true | true
		//true || true
		boolean result1=a<b | b>a;
		System.out.println(result1);
		System.out.println("true|true:"+(true|true));
		System.out.println("true||true:"+(true||true));
		
		//true | false
		//true || false
		System.out.println("true|false:"+(true|false));
		System.out.println("true||false:"+(true||false));
		
		//false | false
		//false || false
		System.out.println("false|false:"+(false|false));
		System.out.println("false||false:"+(false||false));

结果显示:只有两边都是false时才能显示错误,不管哪一边有一个true都是对的。

!(非):

		int a=100;
		int b=200;
		//! false-->true
		boolean result1=!(a>b);
		System.out.println(result1);

结果显示:!(非)运算符得到的结果是原来结果的相反。

&和&&的区别:

		int x=8;
		int y=9;
		System.out.println((++x==y)&&(++x!=y));
		System.out.println(x);
		
		int a=8;
		int b=9;
		System.out.println((++a!=b)&&(++a==b));
		System.out.println(a);
		
		int m=8;
		int n=9;
		System.out.println((++m!=n)&(++m==n));
		System.out.println(m);

结果显示:
&&具有短路功能,当&&左边的表达式结果为false的时候,&&右边的表达式不需要计算;
&没有短路功能,不管&左边的表达式结果为true还是false,&右边的表达式都需要计算。

|和||的区别:

		int x=8;
		int y=9;
		System.out.println((++x==y)||(++x!=y));
		System.out.println(x);
		
		int a=8;
		int b=9;
		System.out.println((++a!=b)||(++a==b));
		System.out.println(a);
		
		int m=8;
		int n=9;
		System.out.println((++m!=n)|(++m==n));
		System.out.println(m);

结果显示:
||具有短路功能,当||左边的表达式结果为true的时候,||右边的表达式不需要计算;
|没有短路功能,不管|左边的表达式结果为true还是false,|右边的表达式都需要计算。

5.条件运算符
条件运算符(三母运算符,三元运算符)
语法结构:
条件?表达式1:表达式2
执行规律:
条件为true,执行表达式1;条件为false,执行表达式2.

可扩展为:
条件运算符的嵌套,在一个运算符中包含另一个运算符
语法结构:
条件1?(条件2?表达式1:表达式2):(条件3?表达式3:表达式4)
执行条件:
判断条件1:
如果条件1为true,判断条件2,如果条件2为true,执行表达式1,如果表达式2为false,执行表达式2
如果条件1为false,判断条件3,如果条件3为true,执行表达式3,如果条件3为false,执行表达式4

package com.bdqn.demo01;

public class Demo07 {

	public static void main(String[] args) {
		
		int num1=100;
		int num2=200;
		
		int max=num1>num2?num1:num2;
		System.out.println("最大值:"+max);
		
		int min=num1>num2?num2:num1;
		System.out.println("最大值:"+min);

	}

}

实例
实例:求解各位数并求和,根据数字之和判断是否中奖。数字之和大于20,则中奖。

package com.bdqn.demo01;

import java.util.Scanner;

public class Demo08 {

	public static void main(String[] args) {
		// 求解各位数并求和,根据数字之和判断是否中奖。数字之和大于20,则中奖
		// 创建Scanner类对象
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入4位数会员卡号:");
		int card = sc.nextInt();
		System.out.println("会员卡号为:" + card);
		System.out.println("千分位:" + (card / 1000));
		System.out.println("百分位:" + (card % 1000 / 100));
		System.out.println("十分位:" + (card % 1000 % 100 / 10));
		System.out.println("各分位:" + (card % 10));
		int sum = (card / 1000) + (card % 1000 / 100)
				+ (card % 1000 % 100 / 10) + (card % 10);
		System.out.println("各位数之和:" + sum);
		String result=sum>20?"恭喜你,中奖了":"很遗憾,未中奖";
		System.out.println(result);

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值