运算符
运算符分以下几种:
- 算术运算符
- 自增自减运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 三元运算符
学习完各类运算符后还会再学习运算符的优先级。
一、算数运算符
1.基础运算 (加 减 乘 除 取余)
加减乘运算:
package com.itheima.Arithmeticoperator;
public class ArithmeticoperatorDemo1 {
public static void main(String[] args) {
//+
System.out.println(3 + 2);
//-
System.out.println(5 - 3);
//*
System.out.println(5 * 3);
//在代码中如果有小数参与计算,结果可能是不精确的
System.out.println(1.1 + 0.01);
System.out.println(1.12 - 1.01);
System.out.println(1.2 * 3.11);
}
}
除和取余运算:
public class ArithmeticoperatorDemo2 {
public static void main(String[] args) {
//除法和取余
System.out.println(10 / 2);
System.out.println(10 / 3); //整数参与计算,结果也是整数
System.out.println(10.0 / 3);//小数参与计算,结果可能不精确
System.out.println(10 % 2);
System.out.println(10 % 3);
}
}
练习题:
键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台。
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(); //接收一个三位数,赋值
//2.获取个位、十位、百位
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);
}
}
2.“+”操作的三种情况
- 数字相加
- 字符串相加
- 字符相加
数字相加
隐式转换(自动类型提升):把一个取值范围小的数值,转成取值范围大的数据。
各类型取值范围大小依次为:
byte<short<int<long<float<double.
隐式转换的两种提升规则:
- 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
- byte short char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算.
强制转换:如果把一个取值范围大的数值,赋值给取值范围小的变量。是不允许直接赋值的。如果一定要这么做就需要加入强制转换
格式:
目标数据类型变量名=(目标数据类型)被强转的数据;
但当超过范围小的类型的范围时会出现错误。
字符串的+操作
字符相加
小结
二、自增自减运算符(++ --)
++和-- 既可以放在变量的前边,也可以放在变量的后边。
三、赋值运算符(= += -= *= /= %=)
赋值运算符底层隐藏了强制类型转换。
四、关系运算符(== != > >= < <=)
注意事项:
- 关系运算符的结果都是boolean类型要么是true,要么是false
- 千万不要把“==”误写成“=”
练习:
您和您的约会对象在餐厅里面正在约会键盘录入两个整数,表示你和你约会对象衣服的时髦度。
(手动录入0~10之间的整数,不能录其他
如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true。否则输出false。
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
//您和您的约会对象在餐厅里面正在约会键盘录入两个整数
// 表示你和你约会对象衣服的时髦度。
// (手动录入0~10之间的整数,不能录其他
// 如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true。否则输出false。
//键盘录入两个数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的时髦度:");
int MyFashion = sc.nextInt();
System.out.println("请输入他的时髦度:");
int HisFashion = sc.nextInt();
//进行对比
boolean result = MyFashion > HisFashion;
//打印结果
System.out.println(result);
}
}
五、逻辑运算符(& | ^ !)
短路逻辑运算符:
当用户名都错的时候,没必要再去判断密码是否正确了,提高代码的效率。
练习:
package code.test;
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
/* 输入两个整数,其中一个是6,或者二者之和为6的倍数,输出true
否则输出为false
*/
/*1.键盘录入两个整数
2.判断:第一个数是6?第二个数是6?和是6?
(可以使用短路或:满足三个中的一个即可输出true)
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number1 = sc.nextInt();
System.out.println("请再输入一个整数:");
int number2 = sc.nextInt();
boolean result = number1 == 6 || number2 == 6 || (number1 + number2) % 6 == 0;
System.out.println(result);
}
}
六、三元运算符(关系表达式?表达式1:表达式2;)
格式: 关系表达式?表达式1:表达式2;
// 先计算关系表达式,当该表达式结果为真,执行表达式1;结果为假,执行表达式2
在代码中,最终得到的表达式必须赋值给一个变量,或者打印出来。
package code.ketang;
import java.util.Scanner;
public class sanyuan {
public static void main(String[] args) {
//得到输入的两个数中的较大数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:" );
int number1 = sc.nextInt();
System.out.println("请再输入一个数:");
int number2 = sc.nextInt();
int result = number1 > number2 ? number1 : number2 ;
System.out.println(result);
}
}
练习:
package code.test;
public class sanyuantest {
public static void main(String[] args) {
/* 已知三和尚身高分别为:150;210;165
用代码实现获取三人最高的身高
*/
int height1 = 150;
int height2 = 210;
int height3 = 165;
int a = height1 > height2 ? height1 : height2 ;
int b = a > height3 ? a : height3;
System.out.println(b);
}
}
七、运算符优先级 (小括号优先一切)
小括号()优先于所有!
小括号()优先于所有!
小括号()优先于所有!