目录
运算符编辑
键盘录入:
练习:键盘输入数字并求和
练习:
算术运算符
隐式转换(自动类型提升)
强制转换
练习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,再把结果赋值给左边的变量aa += b;//等同于 a=(int)(a+b)System.out.println(a);//30System.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);}
}