7.java运算符和表达式

一、介绍

运算符:对字面量或者变量进行操作的符号

表达式:用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。
不同的运算符连接的表达式体现的是不同的表达式。

举例说明

int a = 10;
int b = 20;
int c = a+ b;

+:是运算符,并且是算数运算符
a + b:是表达式,由于+是算数运算符,所以这个表达式叫算数表达式。

在这里插入图片描述

二.算数运算符(1/6)

取模/取余

在这里插入图片描述

(1).示范(加、减、乘):

public class yunsuanfu {
    public static void main(String[] args) {
        // +
        System.out.println(3 + 2);  // 5
        // -
        System.out.println(5 - 1); // 4
        // *
        System.out.println(5 * 5); // 25
    }
}

在这里插入图片描述

(2).示范(计算时有小数参与):

public class yunsuanfu {
    public static void main(String[] args) {
        // 如果计算时有小数参与
        System.out.println(1.1 + 1.1);
        System.out.println(1.1 + 1.01);
        System.out.println(1.1 - 1 );
        System.out.println(1.1 * 1.01);
    }
}

在这里插入图片描述

结论:在代码中如果有小数参与计算,结果有可能不精确的。

(3).示范(除):

public class chu {
    public static void main(String[] args) {
        // 除法
        System.out.println(10 / 2);
        System.out.println(10 / 3);
        System.out.println( 10.0 / 3); // 小数参与计算有可能不精确
    }
}

在这里插入图片描述

结论:

  • 1.整数参与计算,结果只能得到整数
  • 小数参与计算,结果有可能是不精确的。

(4).示范(取余):

public class qvmo {
    public static void main(String[] args) {
        // 取模,取余,实际上也是做除法运算只不过得到的是余数而已
        System.out.println(10 % 2); // 0
        System.out.println(10 % 3); // 1
    }
}

在这里插入图片描述

(5).练习:数值拆分

需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

import java.util.Scanner;

public class shuzhichaifeng {
    public static void main(String[] args) {
        Scanner cs =new Scanner(System.in);
        int shu = cs.nextInt();
        // 个位 :数值 % 10
        int a = shu % 10;
        // 十位 : 数值 / 10 % 10
        int b =shu /10 %10;
        // 百位 : 数值 /100 %10
        int c =shu /100 %10;
        System.out.println("个位:" + a);
        System.out.println("十位:" + b);
        System.out.println("百位:" + c);
    }
}

在这里插入图片描述

(6).数字相加

数字进行计算时,数据类型不一样不能运算,需要转成一样的,才能运算。

1.类型转换的分类

在这里插入图片描述

(1).隐式转换(自动类型提升)

把一个取值范围小的数值,转成取值范围大的数据

示范:

int a = 10;
double b = a;

在这里插入图片描述

在这里插入图片描述
小结:
在这里插入图片描述
练习:
在这里插入图片描述

(2).强制转换

如果把一个取值范围大的数值,赋值给取值范围小的变量。
是不允许直接赋值的。如果一定这么做就需要加入强制转换。

在这里插入图片描述
示范:

public class shuziyunsuan {
    public static void main(String[] args) {
        double a = 123.5;
        int b = (int)a;
        System.out.println(b);
    }
}

在这里插入图片描述

注意:强制转换有可能导致数据发生错误
在这里插入图片描述

(7).字符串相加

  1. 当 “+” 操作中出现字符串时,这个 “+” 是字符串连接符,而不是算数运算符了。会将前后的数据进行拼接,并产生一个新的字符串。
  2. 连续进行 “+” 操作时,从左到右逐个执行。

示范:

System.out.println(3.7 + "abc"); // 结果 "3.7abc"
System.out.println("abc" + true); // 结果 "abctrue"
System.out.println('中' + "abc" + true); // 结果 “中abctrue”
System.out.println(1 + 2 + "abc" + 2 + 1 ); // 结果 "3abc21"

(8).字符相加

注意:byte short char 三种类型的数据在运算的时候,都会直接提升为int,然后再进行运算。

public class zifuxiangjia {
    public static void main(String[] args) {
        char c = 'a';
        int xiangjia = c + 0 ;
        System.out.println(xiangjia);
    }
}

在这里插入图片描述
为什么是97大家可以去看Ascll

在这里插入图片描述
示范:

System.out.println(1 + 'a');     //98
System.out.println('a' + "abc"); //"aabc"

三、自增自减运算符(2/6)

1.基本用法

符号作用说明
++变量值加1
- -变量值减1

注意事项:++和- - 既可以放在变量的前面,也可以放在变量的后面。

如:

int a = 10;
++a;
System.out.println(a); //11
--a;
System.out.println(a); //10
a++;
System.out.println(a); //11
a--;
System.out.println(a); //10

++ 和 - -无论是放在变量的前面还是后面单独写成一行结果是一样的

2.参与计算

在这里插入图片描述
示范:

public class zizengyunsuanf {
    public static void main(String[] args) {
        int x = 10;
        int y = x++;
        int z = ++x;
        System.out.println("x:" + x); //12
        System.out.println("y:" + y); //10
        System.out.println("z:" + z); //12
    }
}

在这里插入图片描述

四、赋值运算符(3/6)

在这里插入图片描述
示范:

public class yunusanf {
    public static void main(String[] args) {
        //+=
        //规则:将左边和右边进行相加,然后再把结果赋值给左边
        int a = 10;
        int b = 20;
        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);//2

在这里插入图片描述

五、关系运算符(4/6)

(关系运算符/比较运算符)的分类:
在这里插入图片描述

六、逻辑运算符(5/6)

什么是逻辑运算符?

  • 在数学中,一个数据x,大于5,小于15,我们可以这样来进行表示: 5 < x < 15
  • 在Java中,需要把上面的式子先进行拆解,再进行合并表达。
    • 拆解为:x>5x<15
    • 合并后:x>5 & x<15

分类:
在这里插入图片描述

示范(&):

 public class sizeyunsuanfu {
    public static void main(String[] args) {
        // 1. & 并且
        // 两边都为真结果才为真
        System.out.println(true & true);   // true
        System.out.println(false & false); // false
        System.out.println(true & false);  // false
        System.out.println(false & true);  // false
    }
}

在这里插入图片描述

示范(|):

public class huo {
    public static void main(String[] args) {
        // 2. | (或者)
        // 两边都为假结果才是假
        System.out.println(true | true);   // true
        System.out.println(false | false); // false
        System.out.println(true | false);  // true
        System.out.println(false | true);  // true
    }
}

短路逻辑运算符

在这里插入图片描述
在这里插入图片描述
短路运算符
在这里插入图片描述
示范:

public class duanlu {
    public static void main(String[] args) {
        // 短路逻辑运算符具有短路效果
        // 简单理解:当左边的表达式能确定最终的结果,那么右边就不会参与运行了
        int a = 10;
        int b = 10;
        boolean result = ++a < 5 && ++b <5;
        System.out.println(result);//false
        System.out.println(a); // 11
        System.out.println(b); // 10
    }
}

在这里插入图片描述
在这里插入图片描述

练习:数字6

需求:
数字6是一个真正伟大的数字,键盘录入两个整数。
如果其中一个为6,最终结果输出true。
如果它们的和为 6 的倍数。最终结果输出True。
其他情况都是 false。

示范:

import java.util.Scanner;
public class shuzi {
    public static void main(String[] args) {
        Scanner cs =new Scanner(System.in);
        int a = cs.nextInt();
        int i = cs.nextInt();
        boolean pd = a == 6 || i == 6 || (a + i) % 6 == 0 ;
        System.out.println(pd);
    }
}

七、三元运算符(6/6)

什么是三元运算符?

1.需求:定义一个变量记录一个整数

int number = 10;
System.out.println(number);

2.需求:定义一个变量记录两个整数的较大值。
(拿两个整数进行比较)

三元运算符作用:可以进行判断,根据判断的结果得到不同的内容。
在这里插入图片描述

public class sanyuan {
    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);

        //方法2:

        System.out.println(number1 >number2 ? number1 :number2);
    }
}

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值