目录
运算符编辑
键盘录入:
练习:键盘输入数字并求和
练习:
算术运算符
隐式转换(自动类型提升)
强制转换
练习1:
字符串的 "+" 操作
编辑
练习 1:
练习2:
练习3:
自增自减运算符
赋值运算符
关系运算符(比较运算符)的分类
练习:
逻辑运算符
短路逻辑运算符编辑
练习:
三元运算符/三元表达式
三元运算符的运算规则:
练习1:
练习2:
温馨提示: 做人不能半途而废,就算躺平也要躺最舒服的那张床!!
运算符
键盘录入:
Scanner 有扫描仪的意思
sc 是自己取的名字( 有人喜欢用input )
new Scanner 是创建一个新的对象,
System.in 代表电脑的键盘
我们使用Scanner 需要导入一个包
练习:键盘输入数字并求和
需求:: 键盘录入两个整数, 求出它们的和并打印出来.
练习:
公式运算:
代码运行:
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
//键盘录入一个三位数,获取其中的个位 十位 百位
//1.键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number = sc.nextInt();
//获取个位 十位 百位
int ge = number % 10;
int shi = number /10 % 10;
int bai = number / 100 % 10;
System.out.println(ge);
System.out.println(shi);
System.out.println(bai);
}
}
算术运算符
隐式转换(自动类型提升)
强制转换
练习1:
public class ArithmeticoperatorDemo3 {
public static void main(String[] args) {
byte b1 = 10;
byte b2 = 20;
// byte result = (byte)b1 + b2; 这个时候 我们要强转的是b1,并不是最终的结果
byte result = (byte) (b1+b2);
System.out.println(result);
}
}
字符串的 "+" 操作
有字符串参与就是字符串拼接, 没有就是普通的算术运算符.
练习 1:
有字符串的连续拼接, 是从左到右拼接, 下面1+2 之间没有字符串 ,那么它就是一个普通的算术运算符, 所以 1+2 就是等于 3 ,那继续往右计算 , 3+"abc" 因为"abc"是字符串进行字符串拼接 , 变成了 "3abc" ,然后 "3abc" 又是一个字符串, 所以字符串拼接 "abc"+2 变成 "abc2" ,以此类推 , "abc2"+1 变成 "abc21" ,这就是最终结果.
练习2:
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
//键盘录入一个三位数,获取其中的个位 十位 百位
//1.键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number = sc.nextInt();
//获取个位 十位 百位
int ge = number % 10;
int shi = number /10 % 10;
int bai = number / 100 % 10;
System.out.println("个位是:"+ ge);
System.out.println("十位是:"+shi);
System.out.println("百位是:"+bai);
}
}
l
练习3:
因为在ASCII表里面, 小写a对应的数字是97,所以下面第一个输出是 1+ 97 ,结果等于 98;
而第二个输出因为"abc"是字符串, 由在+的计算中,只要有字符串,都是进行拼接操作而知, 结果是 "aabc"
自增自减运算符
++ 和 -- 无论放在变量的前边还是后边, 单独写一行结果是一样的
public class ArithmeticoperatorDemo1 {
public static void main(String[] args) {
//+=
//规则:将左边和右边相加,然后再把结果赋值给左边
int a = 10;
int b = 20;
//把a+b,再把结果赋值给左边的变量a
a += b;//等同于 a=(int)(a+b)
System.out.println(a);//30
System.out.println(b);//20
//细节:
//+= , -= ,*=, /= ,%= 的底层都隐藏了一个强制类型转换
short s = 1;
//把左边和右边进行相加,得到结果 2,再赋值给左边的变量
s += 1;
//等同于:s=(short)(s+1);
System.out.println(s);
}
}
赋值运算符
注意事项: 扩展的赋值运算符隐含了强制类型转换.
关系运算符(比较运算符)的分类
练习:
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
//1.键盘录入两个整数表示衣服的时髦度
Scanner sc = new Scanner(System.in);
System.out.println("请输入我们自己的衣服时髦度");
int myFashion = sc.nextInt();
System.out.println("请输入相亲对象的衣服时髦度");
int girlFashion = sc.nextInt();
//两者进行对比
boolean result= myFashion > girlFashion;
//打印结果
System.out.println(result);
}
}
输出true,相亲成功
输出false,相亲失败
逻辑运算符
& 表示 且
分类
短路逻辑运算符
练习:
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
//分析:
//1.键盘录入两个整数
//变量a 变量b
//2.a==6 || b==6 (a+b)%6==0
//如果满足其中一个,那么就可以输出true
//键盘录入两个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int nubmer1 = sc.nextInt();
System.out.println("请输入二个整数");
int number2 = sc.nextInt();
//可以短路逻辑运算符去连接三个判断
boolean result = nubmer1 ==6 || number2 == 6 || (nubmer1 + number2) % 6 == 0;
System.out.println(result);
}
}
三元运算符/三元表达式
定义一个变量记录两个整数的最大值
public class TerrayoperatorDemo1 {
public static void main(String[] args) {
//需求:使用三元运算符,获取两个数的较大值
//分析
//1.定义两个变量记录两个整数
int number1 = 10;
int number2 = 20;
//2. 使用三元运算符获取两个整数的较大值
//格式: 关系表达式 ? 表达式1 : 表达式2 ;
//整个三元运算符的结果必须要被使用
int max = number1 > number2 ? number1 : number2;
System.out.println(max);
System.out.println( number1 > number2 ? number1 : number2);
}
}
三元运算符的运算规则:
先计算关系表达式的值
如果值为true ,表达式1 就是运算结果
如果值为false,表达式2 就是运算结果
练习1:
import java.util.Scanner;
public class test4 {
public static void main(String[] args) {
//分析:
//1. 键盘录入两只老虎的体重
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一只老虎的体重");
int weight1 = sc.nextInt();
System.out.println("请输入第二只老虎的体重");
int weight2 = sc.nextInt();
//2. 比较
//true false
//相同 不同
//System.out.println(weight1 == weight2);
String result = weight1 == weight2 ? "相同" : "不同";
System.out.println(result);
}
}
练习2:
public class test5 {
public static void main(String[] args) {
//1. 定义三个变量记录三个和尚的身高
int height1 = 150;
int height2 = 210;
int height3 = 165;
//2. 拿着第一个和尚和第二个和尚进行比较
//再拿着结果跟第三个和尚进行比较即可
int temp = height1 > height2 ? height1 : height2;
int max = temp > height3 ? temp : height3;
System.out.println(max);
}
}