Java基本语法:Java运算符与表达式 系列④

715 阅读7分钟

6cde57cb-1859-4652-a281-832176d87ba4.jfif

在Java编程中,运算符和表达式是构建程序逻辑的基础。运算符用于执行各种操作,而表达式则是由运算符和操作数组成的计算单元。本文将详细介绍Java中的各种运算符及其使用方法,包括算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、条件运算符等。最后,我们将附上一个综合详细的例子,并输出运行结果。

一、Java运算符

1. 算术运算符

算术运算符用于进行基本的数学运算,如加、减、乘、除、取余等。Java中的算术运算符包括:

  • + (加):将两个操作数相加
  • - (减):从第一个操作数中减去第二个操作数
  • * (乘):将两个操作数相乘
  • / (除):将第一个操作数除以第二个操作数
  • % (取余):将第一个操作数除以第二个操作数后的余数

示例代码:

int a = 10;
int b = 3;
int sum = a + b; // 13
int difference = a - b; // 7
int product = a * b; // 30
int quotient = a / b; // 3
int remainder = a % b; // 1

2. 关系运算符

关系运算符用于比较两个操作数的大小关系,返回一个布尔值。Java中的关系运算符包括:

  • == (等于):判断两个操作数是否相等
  • != (不等于):判断两个操作数是否不相等
  • > (大于):判断第一个操作数是否大于第二个操作数
  • < (小于):判断第一个操作数是否小于第二个操作数
  • >= (大于等于):判断第一个操作数是否大于或等于第二个操作数
  • <= (小于等于):判断第一个操作数是否小于或等于第二个操作数

示例代码:

int x = 5;
int y = 10;
boolean isEqual = (x == y); // false
boolean isNotEqual = (x != y); // true
boolean isGreaterThan = (x > y); // false
boolean isLessThan = (x < y); // true
boolean isGreaterThanOrEqual = (x >= y); // false
boolean isLessThanOrEqual = (x <= y); // true

3. 逻辑运算符

逻辑运算符用于对布尔值进行逻辑操作,通常用于条件判断。Java中的逻辑运算符包括:

  • && (逻辑与):只有当两个操作数都为true时,结果才为true
  • || (逻辑或):只要有一个操作数为true,结果就为true
  • ! (逻辑非):将操作数的布尔值取反

示例代码:

boolean p = true;
boolean q = false;
boolean andResult = (p && q); // false
boolean orResult = (p || q); // true
boolean notResult = !p; // false

4. 赋值运算符

赋值运算符用于将右侧的值赋给左侧的变量。Java中的赋值运算符包括:

  • = (赋值):将右侧的值赋给左侧的变量
  • += (加等于):将右侧的值与左侧的变量相加,并将结果赋给左侧的变量
  • -= (减等于):将右侧的值与左侧的变量相减,并将结果赋给左侧的变量
  • *= (乘等于):将右侧的值与左侧的变量相乘,并将结果赋给左侧的变量
  • /= (除等于):将左侧的变量除以右侧的值,并将结果赋给左侧的变量
  • %= (取余等于):将左侧的变量除以右侧的值后的余数赋给左侧的变量

示例代码:

int num = 5;
num += 3; // 8
num -= 2; // 6
num *= 4; // 24
num /= 6; // 4
num %= 3; // 1

5. 位运算符

位运算符用于对整数类型的位进行操作。Java中的位运算符包括:

  • & (按位与):对两个操作数的每一位执行逻辑与操作
  • | (按位或):对两个操作数的每一位执行逻辑或操作
  • ^ (按位异或):对两个操作数的每一位执行逻辑异或操作
  • ~ (按位非):对操作数的每一位执行逻辑非操作
  • << (左移):将操作数的位向左移动指定的位数
  • >> (右移):将操作数的位向右移动指定的位数
  • >>> (无符号右移):将操作数的位向右移动指定的位数,并在高位补零

示例代码:

int m = 5; // 0101
int n = 3; // 0011
int andResult = m & n; // 0001 (1)
int orResult = m | n; // 0111 (7)
int xorResult = m ^ n; // 0110 (6)
int notResult = ~m; // 1010 (-6)
int leftShiftResult = m << 2; // 10100 (20)
int rightShiftResult = m >> 1; // 0010 (2)
int unsignedRightShiftResult = m >>> 1; // 0010 (2)

6. 条件运算符

条件运算符也称为三元运算符,用于根据条件表达式的布尔值返回不同的值。条件运算符的语法如下:

条件表达式 ? 表达式1 : 表达式2

如果条件表达式为true,则返回表达式1的值;否则,返回表达式2的值。

示例代码:

int a = 10;
int b = 20;
int max = (a > b) ? a : b; // 20

7. 其他运算符

  • instanceof 运算符:用于测试对象是否是特定类的实例。示例如下:
String str = "Hello";
boolean isString = str instanceof String; // true

二、Java表达式

表达式是由运算符和操作数组成的计算单元。表达式可以是一个值、一个变量,也可以是更复杂的包含多个运算符和操作数的组合。

示例代码:

int x = 10;
int y = 20;
int result = (x + y) * 2; // 表达式 (x + y) * 2 的结果是 60

三、综合详细的例子

下面是一个综合详细的例子,演示了Java运算符和表达式的使用。该例子是一个简单的计算器程序,提供加法、减法、乘法、除法、取余等基本运算,并展示了各种运算符和表达式的使用。

示例代码

package com.example.calculator;

import java.util.Scanner;

/**
 * 这是一个简单的计算器类
 * 用于演示Java运算符和表达式的使用
 */
public class Calculator {

    /**
     * 主方法,程序入口
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        calculator.run();
    }

    /**
     * 运行计算器程序,提供用户交互界面
     */
    public void run() {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("1. 加法");
            System.out.println("2. 减法");
            System.out.println("3. 乘法");
            System.out.println("4. 除法");
            System.out.println("5. 取余");
            System.out.println("6. 退出");
            System.out.print("选择操作: ");
            int choice = scanner.nextInt();
            scanner.nextLine(); // 清除缓冲区

            if (choice == 6) {
                System.out.println("退出计算器");
                break;
            }

            System.out.print("输入第一个数: ");
            double num1 = scanner.nextDouble();
            System.out.print("输入第二个数: ");
            double num2 = scanner.nextDouble();
            scanner.nextLine(); // 清除缓冲区

            double result;
            switch (choice) {
                case 1:
                    result = add(num1

, num2);
                    System.out.println("结果: " + num1 + " + " + num2 + " = " + result);
                    break;
                case 2:
                    result = subtract(num1, num2);
                    System.out.println("结果: " + num1 + " - " + num2 + " = " + result);
                    break;
                case 3:
                    result = multiply(num1, num2);
                    System.out.println("结果: " + num1 + " * " + num2 + " = " + result);
                    break;
                case 4:
                    result = divide(num1, num2);
                    System.out.println("结果: " + num1 + " / " + num2 + " = " + result);
                    break;
                case 5:
                    result = modulus(num1, num2);
                    System.out.println("结果: " + num1 + " % " + num2 + " = " + result);
                    break;
                default:
                    System.out.println("无效操作");
            }
        }
        scanner.close();
    }

    /**
     * 加法运算
     * @param a 第一个操作数
     * @param b 第二个操作数
     * @return 两个操作数的和
     */
    public double add(double a, double b) {
        return a + b;
    }

    /**
     * 减法运算
     * @param a 第一个操作数
     * @param b 第二个操作数
     * @return 两个操作数的差
     */
    public double subtract(double a, double b) {
        return a - b;
    }

    /**
     * 乘法运算
     * @param a 第一个操作数
     * @param b 第二个操作数
     * @return 两个操作数的积
     */
    public double multiply(double a, double b) {
        return a * b;
    }

    /**
     * 除法运算
     * @param a 第一个操作数
     * @param b 第二个操作数
     * @return 两个操作数的商
     */
    public double divide(double a, double b) {
        if (b == 0) {
            System.out.println("除数不能为0");
            return 0;
        }
        return a / b;
    }

    /**
     * 取余运算
     * @param a 第一个操作数
     * @param b 第二个操作数
     * @return 第一个操作数除以第二个操作数的余数
     */
    public double modulus(double a, double b) {
        return a % b;
    }
}

运行结果

4.png

四、总结

本文详细介绍了Java中的各种运算符及其使用方法,包括算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、条件运算符等。运算符是构建表达式和程序逻辑的基础,通过合理地使用这些运算符,可以编写出高效、简洁的Java代码。最后,通过一个综合详细的计算器例子,展示了各种运算符在实际应用中的用法及其运行结果。希望本文能帮助你更好地理解Java运算符与表达式,提高编程能力。


欢迎点赞|关注|收藏|评论,您的肯定是我创作的动力