1.运算符的介绍
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等
2.算数运算符
1.介绍
1.算数运算符是对数据变量进行操作的符号,java程序中用的最多的运算符
2.运算符预览
3.演示案例,重点讲解%、/、++
1.除
public class Homework02 {
public static void main(String[] args) {
System.out.println(10/4);
/*
从数学中得知明明得到的值为2.5为什么是2呢?
因为我们的10和4都是int整形,不能存放小数,所以打印的时候才是2
*/
System.out.println(10.0/4);
/*
当我们将一个变量提升为double的时候输出的就是2.5了
*/
}
}
结果
2.取模
public class Order {
public static void main(String[] args) {
// % 取模 ,取余
/*
在 % 的本质 看一个公式 !!!!a % b = a - a / b * b
*/
// -10 % 3 => -10 - (-10) / 3 * 3 = -10 + 9 = -1
// 10 % -3 = 10 - 10 / (-3) * (-3) = 10 - 9 = 1
// -10 % -3 = (-10) - (-10) / (-3) * (-3) = -1
System.out.println("(-10)%3的结果是=" + -10 % 3);
System.out.println("10%(-3)的结果是=" + -10 % 3);
System.out.println("(-10)%(-3)的结果是=" + -10 % 3);
}
}
3.++、–
public class Order {
public static void main(String[] args) {
/*
前置++和前置--,都是先运算在赋值,我们看案例
*/
int i = 5;
if (++i == 6){
System.out.println("进来了");
}else{
System.out.println("没进去");
}
//当我们将++i换成i++再看案例
int p= 5;
if (p++ == 6){
System.out.println("进来了");
}else{
System.out.println("没进去");
}
}
结果 ,很明显的看到当是前置++的时候就会先++在赋值,当是后置在++++的时候就会先赋值
2.关系运算符
1.介绍
1.关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false
2. 关系表达式 经常用在 if 结构的条件中或循环结构的条件中‘
3.逻辑运算符
1.短路与和异或与的区别
public class Order {
public static void main(String[] args){
/*
逻辑与和短路与的区别
相同点:两个都为真的时候才为真,一个为假都为假
不同点:
1.逻辑与当第一个条件判断为真的时候还会继续往下判断
2.短路与当第一个条件判断为假的时候就不会往下判断了
*/
//看例题
int num1 = 5;
int num2 = 4;
if(num1++>6 & ++num2>5){
System.out.println("进去了");
System.out.println("num1="+num1+" num2="+num2);
}
//能够看到当没有满足条件,所以没有进去判断,然后第一个判断都为false了逻辑与还是继续往下进行判断
System.out.println("没有进去");
System.out.println("num1="+num1+" num2="+num2);
}
}
逻辑与结果
短路与
public class Order {
public static void main(String[] args){
/*
逻辑与和短路与的区别
相同点:两个都为真的时候才为真,一个为假都为假
不同点:
1.逻辑与当第一个条件判断为真的时候还会继续往下判断
2.短路与当第一个条件判断为假的时候就不会往下判断了
*/
//看例题
int num1 = 5;
int num2 = 4;
if(num1++>6 && ++num2>5){
System.out.println("进去了");
System.out.println("num1="+num1+" num2="+num2);
}
//能够看到当没有满足条件,直接就跳出判断没有继续往下判断了
System.out.println("没有进去");
System.out.println("num1="+num1+" num2="+num2);
}
}
结果短路与
1.&&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果false,效率高
2. 逻辑与:不管第一个条件是否为false,第二个条件判断都会执行
3.逻辑或和短路或原理同上
4.赋值运算符
注:除了第一个是赋值运算符,其他都死拓展赋值运算符!!
很重要的语法机制:
使用扩展赋值运算符
的时候,永远都不会改变
运算结果类型
public class Order {
public static void main(String[] args){
int i = 4;
i+=1;
//---> = i = i+1
int n = 6;
n/=2; //--->n = n/2
//复合赋值运算符会进行类型转换
byte b = 3;
b += 2; // 等价 b = (byte)(b + 2);
b++; // b = (byte)
}
}
5.三元运算符
基本语法 条件表达式 ? 表达式 1: 表达式 2; 运算规则:
1. 如果条件表达式为 true,运算后的结果是表达式 1;
2. 如果条件表达式为 false,运算后的结果是表达式 2
public class TernaryOperator {
//编写一个 main 方法
public static void main(String[] args) {
int a = 10;
int b = 99;
// 解读
// 1. a > b 为 false
// 2. 返回 b--, 先返回 b 的值,然后在 b-1
// 3. 返回的结果是 99
int result = a > b ? a++ : b--;
System.out.println("result=" + result);
System.out.println("a=" + a);
System.out.println("b=" + b);
}
}
使用细节
表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换) 2) 三元运算符可以转成 if–else 语
版权声明:本文为weixin_48735871原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。