Java基础1.4-运算符

目录

算数运算符

数值拆分

字符串拼接操作

自增自减运算符

类型转换

隐式转换

强制转换类型

赋值运算符

关系运算符

逻辑运算符

三元运算符

运算符优先级

[Scanner 键盘录入](#Scanner 键盘录入)


算数运算符

|----|----|----------------|
| 符号 | 作用 | 说明 |
| + | 加 | 参看小学一年级 |
| - | 减 | 参看小学一年级 |
| * | 乘 | 参看小学二年级,与"×"相同 |
| / | 除 | 参看小学二年级,与"÷"相同 |
| % | 取余 | 获取的是两个数据做除法的余数 |

数值拆分

字符串拼接操作

自增自减运算符

复制代码
public class OperatorDemo2 {
    /*
                      自增自减运算符
        符号:++(自增)、--(自减)
        使用方式:
        可以放在变量的前面,也可以放在变量的后面
        使用细节:
        单独使用:符号在前或在后没有区别示例:
        c
        int a = 10;
        ++a;
        a++;
        参与运算使用:
        ++在前:先自增再操作
        ++在后:先操作再自增
     */
    public static void main(String[] args) {
        int a =10;
        int b =++a;
        System.out.println(a);
        System.out.println(b);//a=11 b=11

        int c =10;
        int d = c++;
        System.out.println(c);
        System.out.println(d);// d=10 c=11

    }
}

类型转换

隐式转换

强制转换类型

复制代码
public class TypeChangeDemo {
    /*
        byte b1 = 3;
    byte b2 = 4;
    byte b3 = b1 + b2;
    错误原因:b1 和 b2 是 byte 类型数据,相加时会自动提升为 int 类型(Java 的运算类型提升规则),最终结果是 int 类型;将 int 类型值直接赋值给 byte 类型变量,属于 "大类型赋值给小类型",会导致编译错误。
    改正方案:
    强制类型转换:byte b3 = (byte)(b1 + b2);
    改变变量类型:int b3 = b1 + b2;
    代码片段 2
    java
    byte b = 3 + 4;
    说明:这句代码不会报错,因为 Java 存在 "字面量优化机制":编译阶段(javac)会直接计算3+4的结果(7),而 7 在 byte 类型的取值范围(-128~127)内,因此编译后字节码等价于byte b = 7;。
    完整 main 方法代码
    java


    }
     */
    public static void main(String[] args) {
        byte b = 3 + 4;
        System.out.println(b);
    }
}

赋值运算符

关系运算符

逻辑运算符

把多个条件放在一起运算,最终返回布尔类型的值:true、false

需求: 在程序中,判断一个学生成绩是否在 90~100 之间,是的话程序输出优秀.

|----|------|---------------------|
| 符号 | 介绍 | 说明 |
| & | 逻辑与 | 并且, 遇 false 则 false |
| | | 逻辑或 | 或者,遇 true 则 true |
| ! | 逻辑非 | 取反 |
| ^ | 逻辑异或 | 相同为 false,不同为 true |

|------|-----|----|
| 符号 | 介绍 | 说明 |
| && | 短路与 | |
| || | 短路或 | |

复制代码
public class OperatorDemo03 {
    /*
        短路逻辑运算符:
    & : 没有短路效果,无论符号左边是true还是false,右边都要继续执行.
    && : 具有短路效果,当符号左边为false的时候,右边就不执行了.
         如果符号左边为true,右边要继续执行.

    | : 没有短路效果,无论符号左边是true还是false,右边都要继续执行.
    || : 具有短路效果,当符号左边为true的时候,右边就不执行了.
         如果符号左边为false,右边要继续执行.
     */
    public static void main(String[] args) {
        int x = 3;
        int y = 4;

        // false & false

        ++x;
        y--;
        boolean result = false;

        System.out.println(result);  // false

        System.out.println(x);      // 4
    }
}

三元运算符

运算符优先级

Scanner 键盘录入

复制代码
import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的年龄");
        int age = sc.nextInt();
        System.out.println("请输入你的姓名");
        String name = sc.next();

        System.out.println("姓名为"+name+"年龄为"+age);
    }
}
相关推荐
molaifeng14 小时前
Go 语言如何实现高性能网络 I/O:Netpoller 模型揭秘
开发语言·网络·golang
韩师学子--小倪14 小时前
fastjson与gson的toString差异
java·json
Drawing stars14 小时前
JAVA后端 前端 大模型应用 学习路线
java·前端·学习
崇山峻岭之间14 小时前
Matlab学习记录33
开发语言·学习·matlab
Evand J14 小时前
【2026课题推荐】DOA定位——MUSIC算法进行多传感器协同目标定位。附MATLAB例程运行结果
开发语言·算法·matlab
nbsaas-boot14 小时前
SQL Server 存储过程开发规范(公司内部模板)
java·服务器·数据库
行百里er14 小时前
用 ThreadLocal + Deque 打造一个“线程专属的调用栈” —— Spring Insight 的上下文管理术
java·后端·架构
jllllyuz14 小时前
基于MATLAB的二维波场模拟程序(含PML边界条件)
开发语言·matlab
忆锦紫15 小时前
图像增强算法:Gamma映射算法及MATLAB实现
开发语言·算法·matlab
玄〤15 小时前
黑马点评中 VoucherOrderServiceImpl 实现类中的一人一单实现解析(单机部署)
java·数据库·redis·笔记·后端·mybatis·springboot