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);
    }
}
相关推荐
ldj20202 小时前
springboot logback 设置日志级别
java·spring boot·logback
C雨后彩虹2 小时前
字符串拼接
java·数据结构·算法·华为·面试
遥远_2 小时前
一次高并发压垮系统的排查与重生(上)
java·微服务·性能优化·高并发·限流·qps
serendipity_hky2 小时前
【go语言 | 第6篇】Go Modules 依赖解决
开发语言·后端·golang
小oo呆2 小时前
【学习心得】Python的TypedDict(简介)
开发语言·python
C雨后彩虹2 小时前
ConcurrentHashMap入门:高并发场景的 HashMap替代方案
java·数据结构·哈希算法·集合·hashmap
文洪涛2 小时前
VS Code Python “第一次运行失败 / 先执行 python 再激活 Conda” 问题定位与解决
开发语言·python·conda
weixin_425023002 小时前
Spring boot 2.7.18使用knife4j
java·spring boot·后端