Day03
一、运算符
A、运算:对常量和变量进行操作的过程称为运算
B、运算符:对常量和变量进行操作的符号称为运算符
C、表达式:由运算符把常量和变量连接起来的式子
1、算数运算符
算数运算符符号:+、-、*、/、%、++、--
(1)+:
正号
加法
字符串连接
(2)-:
负数
减法
(3)*:
乘法
(4)/:
除法
(5)%:
取余数
(6)++、--
1、单独使用
放在前面和后面效果一样
2、参与操作使用
放在数据的前面,先数据变化,在参与运算。
放在数据的后面,先参与运算,再数据变化。
2、赋值运算符
赋值运算符:=、+=、-=、*=、/=、%=、^=、&=、|=、<<=、>>=
(1)基本用法
int a = 10;
把10赋值给int类型的变量a
(2)复合用法
a += 10;//等价于 a = a + 10
-=、*=、/=、%=,用法类似。
把左边和右边的结果赋值给左边,并强制转换为左边的类型。
3、关系运算符
关系运算符:==、!=、>、>=、<、<=
注意:无论表达式简单还是复杂,结果肯定是boolean类型
4、逻辑运算符
逻辑运算符:&、|、^、!、&&、||
(1)单符号用法
①&(逻辑与):
有false则为false
②|(逻辑或):
有true则为true
③^(逻辑异或):
相同false,不同true
④!(逻辑非):
偶数个,值不变;奇数个,值相反
(2)双符号用法
⑤&&(短路与):
有false则为false,遇到false不执行
⑥||(短路或):
有true则为true,遇到true不执行
(3)&、|与&&、||的区别
&&具有短路效果,左边为false,右边不执行。
||具有短路效果,左边为true,右边不执行。
5、三目运算符
(1)格式:
布尔表达式?表达式1:表达式2;
(2)执行流程:
A:计算关系表达式的值
B:如果是true,表达式1就是结果
如果是false,表达式2就是结果
(3)个人补充:
条件表达式的嵌套使用以及如何改写嵌套语句
6、字符串拼接符
方法:使用+号进行连接。
注意数字加数字认为为加号。
int a=1000;
System.out.println("恭喜您,中奖"+a+"万元!");
7、位运算符
位运算符: & 、 |、 ^ 、 <<、 >>、 >>>
(做位运算,需要把数据转换为二进制)
(1)&(按位与):
同位比较,两者为1,结果才为1
(2)|(按位或):
同位比较,两者有1,结果就为1
(3)^(按位异或):
同位比较,相同为0,不同为1
&、|、^:前后两侧都是数值,此符号为位运算符
&、|、^:前后两侧都是boolean,此符号为逻辑运算符
(4)<<(左移):
整体向左移动n位,就用n个0补位
(5)>>(带符号位右移):
整体向右移动n位,就用n个最高位补位
(6)>>>(无符号位右移):
整体向右移动n位,就用n个0补位
>>与 >>>的区别
如果是正数,没有区别
如果是负数,>>按照1补位,>>>按照0补位
二、表达式
(1)算数表达式
(2)关系表达式
(3)位运算表达式
三、运算符优先级

使用方法:活用小括号提高优先级。
四、拓展(键盘录入Scanner的用法)
主要用于在窗口输入数据
(1)使用步骤:
1、导包:
import java.util.Scanner;
注意:在类class的上面。
2、创建对象:
Scanner sc = new Scanner(System.in);
3、调用方法获取数据(功能):
int num = sc.nextInt();
(2)注意事项:
1、使用Java提供的类需要在java文件中的第一行导入包
2、使用功能必须要先创建对象
3、创建对象 类型 引用 = 新建的对象
Scanner sc = new Scanner(System.in);
4、方法介绍:调用方法必须使用对象所对应的引用进行调用
int num1 = sc.nextInt();
在窗口输入一个整数类型数字并赋值给程序中的num变量
double num2 = sc.nextDouble();
在窗口输入一个浮点类型数字并赋值给程序中的num变量
String str =sc.next();
在窗口输入一个字符串并赋值给程序中的str变量
5.方法调用几次,就可以在窗口输入几次
(3)练习
A:获取两个数据中较大的值
//导入Scanner包
import java.util.Scanner;
public class Test01{
public static void main(String[] args){
//创建对象
Scanner sc = new Scanner(System.in);
//提示输入数据
System.out.println("请输入第一个数字:");
//获取数据功能
int num1 = sc.nextInt();
System.out.println("请输入第二个数字:");
int num2 = sc.nextInt();
//三目运算比较大小
int result = (num1>num2)?num1:num2;
System.out.println("两个数字最大的是:"+result);
}
}
B:获取三个数据中较大的值
import java.util.Scanner;
public class Test02{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int num1 = sc.nextInt();
System.out.println("请输入第二个数字:");
int num2 = sc.nextInt();
System.out.println("请输入第三个数字:");
int num3 = sc.nextInt();
//两次三目运算比较大小
int result = (num1>num2)?num1:num2;
result =(result>num3)?result:num3;
System.out.println("您输入的最大数为:"+result);
}
}
C:比较两个数是否相等
import java.util.Scanner;
public class Test03{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int num1 = sc.nextInt();
System.out.println("请输入第二个数字:");
int num2 = sc.nextInt();
boolean result = (num1 == num2)?true:false;
if(result=true){
System.out.println("您输入的数字相等。");
}else{
System.out.println("您输入的数字不相等。");
}
}
}
D:获取三个数据,并按从小到大排列
import java.util.Scanner;
public class Test04{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一位数字:");
int num1 = sc.nextInt();
System.out.println("请输入第二位数字:");
int num2 = sc.nextInt();
System.out.println("请输入第三位数字:");
int num3 = sc.nextInt();
int result1 = (num1<num2)?num1:num2;
int mix = (result1<num3)?result1:num3;
int result2 = (num1>num2)?num1:num2;
int max = (result2>num3)?result2:num3;
int mid = num1+num2+num3-mix-max;
System.out.println("您输入的数据从小到大排列为:"+mix+"、"+mid+"、"+max+".");
}
}
浙公网安备 33010602011771号