2.6 JAVA运算符

news2025/1/12 22:56:00

文章目录

  • 1.运算符概述
  • 2.运算符具体功能
  • 3.基本四则运算符
  • 4.取余运算符
  • 5.自增自减运算符
  • 6.比较运算符
  • 7.逻辑运算符
  • 8.三目运算符
  • 9.赋值运算符
  • 10.综合练习:求平年闰年


1.运算符概述

运算符用于连接表达式的操作数,并对操作数执行运算。

例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”。

在java语言中,运算符可分为5种类型:

  • 算术运算符
  • 赋值运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符

根据操作数的不同,运算符又分为:

  • 单目运算符
  • 双目运算符
  • 三目运算符

单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数。

位运算符涉及到二进制位的运算,在java 程序中运用不是很多。

2.运算符具体功能

在这里插入图片描述

3.基本四则运算符

package partOne;
//本类主要用于测试四则运算
public class TestOperator1 {
    public static void main(String[] args) {
        //int/int=int  结果为:3
        System.out.println(35/10);

        //double+int=double 结果为:8.0
        System.out.println(3.0+5);
        
        //float-int=float 结果为:3.0
        System.out.println(7.0F-4);

        //int*int=int 结果为:12
        System.out.println(3*4);
    }
}

JAVA中使用+、-、*、/表示加、减、乘、除运算。其中除法运算中,当除数与被除数都是整数时,表示整数除法,否则表示浮点数除法。

4.取余运算符

package partOne;
//本类用于测试运算符中的取余运算符
public class TestOperator2 {
    public static void main(String[] args) {
        //%是取余运算符,先将俩数相除,其余数为几,取余运算结果就为几
        System.out.println(35%10);  //结果为5
        System.out.println(10%5);   //结果为0

        //练习:求一个俩位数的十位与个位各是几
        int num1 = 59;
        System.out.println(num1/10); //这个数除以10得到十位的数:5
        System.out.println(num1%10); //这个数取余10得到个位的数:9

        //练习:求一个三位数的十位与个位各是几
        int num2 = 613;
        System.out.println(num2/100); //这个数除以10得到百位的数:6
        System.out.println(num2/10%10); //这个数取余10得到个位的数:1
        System.out.println(num2%10); //这个数取余10得到个位的数:3
    }
}

在取余运算中,常用来获取一个数各位数具体为多少,像示例代码中的方式,可以获取任意一个数的任意一个位置具体的值。

5.自增自减运算符

package partOne;
//本类用来测试自增自减运算符
public class TestOperator3 {
    public static void main(String[] args) {
        //定义一个变量的初始值
        int num = 5;

        //输出num的值
        System.out.println(num);    //结果为:5

        //++num 为前缀自增,先将变量增加1,然后使用其变量
        System.out.println(++num);  //结果为:6

        //定义一个变量的初始值
        int num2 = 7;

        //num++ 为后缀自增,先使用变量,然后将变量增加1
        System.out.println(num2++);//结果为:7
        System.out.println(num2);//结果为:8

        //同样的,自减运算符也满足此规则
        int num3 = 11;
        System.out.println(num3--); //先使用变量num3,然后将其减1,结果为:11
        System.out.println(num3);   //再次打印变量num3,其值为上次使用完后减1之后的值,结果为:10

        int num4 = 13;
        System.out.println(--num4);//先减1,然后使用变量num4,结果为:12
        System.out.println(num4);//此时变量还是上次使用时的值,并没有再次改变,结果为:12
    }
}

自增自减运算符只要理解其值是在什么时候改变的即可:
- 前缀自增自减是使用前就改变,然后使用其改变之后的值
- 后缀自增自减是先使用,在使用这个值后,再改变其本身的值,下次再使用就是已经改变之后的值了

那么,大家可以做个练习,思考下方代码的结果:

int num = 10;
 System.out.println(--num-num-num--);

首先,num的值为10,在本式中开始进行计算,–num为前缀自增自减,先自减1,此时变量num的值已经变为了9,此时这个式子应该为9-9-(9–);

最后的9–为后缀自增自减,先使用这个值,在使用后,将其结果自减1,所以最后打印结果就为9-9-9=-9;而num的值为9;

6.比较运算符

package partOne;
//本类用于测试比较运算符
public class TestOperator4 {
    public static void main(String[] args) {
        System.out.println(3>1);//结果为:true
        System.out.println(3<1);//结果为:false
        System.out.println(3==1);//结果为:false
    }
}

比较运算符的结果均为布尔值,只有true和false俩种结果。

其中>、<、>=、<=就是字面上的比较运算,符合结果为true,不符合结果为false。

==与!= 常用来判断俩个变量是否相等,当等号两边的值为相同数据类型时,直接比较值是否相同,当类型不同时会发生数据类型的转换,转换为相同的类型后再进行比较,符合结果为true,不符合结果为false。

7.逻辑运算符

逻辑运算符又称关系运算符只能用于一次比较操作,但是很多情况下是需要多个关系运算兼顾考虑的,如:考试等级判断、个人所得税的缴纳等等,这时就需要使用逻辑运算符来操作。逻辑运算符有:&&----短路与、||----短路或、!----非;

  1. 短路与运算——&&

    • 两个关系参与的短路与运算:只有两个都是true,短路与结果才是true;只要有一个是false,短路与结果就是false。
    • 在实际运行中,只要出现false结果,后续就不再继续进行运算,会直接输出结果false;
  2. 短路或运算——||

    • 两个关系参与的短路或运算:只有两个都是false时,短路或结果才是false;只要有一个是true,短路或结果一定是true。
    • 在实际运行中,只要出现true结果,后续就不再继续进行运算,会直接输出结果true;
  3. 非运算——!

    • 非运算是针对一个关系运算结果的求反运算:关系为true,则非运算结果是false;关系为false,则非运算结果是true。
  4. 与运算中,全真才真,或运算中,全假才假,并不会因为前序运算不符合规则就直接停止后续判断,所以在实际开发中,使用较少,因为其效率不高。

8.三目运算符

语法:boolean条件 ? 值1 : 值2

三目运算符是一个根据条件的不同取值,去执行不同的值:如果条件为true时,则执行值1;如果条件为false时,则执行值2。

注意:
- 三目运算中的值1和值2,只能有一个被执行;
- 值1和值2的类型必须一致;
- 三目运算的结果类型,由值的类型决定;

package partOne;

import java.util.Scanner;

//本类用于c测试三目运算符
public class TestOperator5 {
    public static void main(String[] args) {

        //1.提示用户输入一个数a
        System.out.println("请输入要比较的第一个数:");
        //接收用户输入的第一个数
        int a = new Scanner(System.in).nextInt();

        //2.提示用户输入二个数b
        System.out.println("请输入要比较的第二个数:");
        //接收用户输入的第一个数
        int b = new Scanner(System.in).nextInt();

        /**
         3.比较用户输入的俩个数
         其中a>b为表达式,若结果为真,则取a位置的值,如果结果为false则取b位置的值,最后的返回值为a,b相同类型的值max
         * */
        int max = a > b ? a : b;
        System.out.println(max);
    }
}

9.赋值运算符

=在java中是作为赋值使用的,其并不是比较运算符,注意要与==进行区分;

赋值运算符是用于将等号右边的结果赋值给左边的变量,赋值运算是最后才执行的,执行顺序是从右往左。赋值运算符在使用时还具备以下用法:

  • 赋值运算表达式本身也是有值得
  • 在开发中,赋值运算符可以与算术运算符配合一起使用,这种就称之为扩展赋值运算符。具体写法为:
    -

10.综合练习:求平年闰年

package partOne;

import java.util.Scanner;

public class Demo3 {
    public static void main(String[] args) {
        //1.提示并接收用户输入的年份
        System.out.println("请输入您要判断的年份:");
        int year = new Scanner(System.in).nextInt();

        //2.定义一个变量用来保存结果
        String result = "平年";//默认值是平年,假设每年都是平年

        //3.判断用户输入的年份是否满足闰年的条件
        /**方法1*/
        /**条件1:能被4整除,并且不能被100整除*/
//		if(year % 4 == 0) {//能被4整除
//			if(year %100 != 0) {//不能被100整除
//				result = "闰年";//符合闰年的条件1,修改结果为闰年
//			}
//		}
//		/**条件2:能被400整除*/
//		if(year % 400 == 0) {//能被400整除
//			result = "闰年";//符合闰年的条件2,修改结果为闰年
//		}
        /**方法2*/
        /**判断结构 if(判断条件){满足判断条件以后执行的代码} */
        //if(条件1  || 条件2){是闰年 }
        //if((小条件1  && 小条件2) || 条件2){ 是闰年 }
        //if((能被4整除  && 不能被100整除) || 能被400整除){ 是闰年 }
        if((year % 4 == 0 && year %100 != 0) || year % 400 == 0){
            result = "闰年";//符合闰年的条件,修改结果为闰年
        }
        System.out.println(year+"年是"+result);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/179057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用java来创建es索引(基于es7.8)

1、先引入pom依赖&#xff1a; <dependencies> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.8.0</version> …

零基础学JavaWeb开发(二十四)之 springmvc入门到精通(4)

三、整合前端layui 前后端分离架构模式 前端---页面编写好 数据源来自于 后端接口 layui或者vue等 将接口编写好即可&#xff08;springmvc&#xff09; 1、使用layui画出首页界面 html/js/css 表格 - 页面元素 - Layui 引入css <!-- 引入layui css --> <link …

MySQL优化(1)执行计划explain中type属性详解

系列文章目录1.初始化测试数据1.初始化表格&#xff08;user表&#xff09;2.初始化表格&#xff08;product表&#xff09;3.初始化表格&#xff08;user表数据初始化&#xff09;4.初始化表格&#xff08;product表函数&#xff09;5.初始化表格&#xff08;product表数据初始…

雷达编程实战之信号处理流程

信号处理_MatlabAD数据幅相校准1DFFT2DFFT由射频前端发射、接收信号&#xff0c;至获得目标径向距离、径向速度、径向角度、RCS等目标属性信息&#xff0c;这个过程&#xff0c;我们谓之&#xff0c;FMCW毫米波雷达信号处理流程。 VCO为压控振荡器(Voltage Controlled Oscilla…

从技术角度看Android大系统的构成

最近因为工作需要&#xff0c;再次捡起了放下多年的Android开发。说起Android&#xff0c;还是要感谢这个时代&#xff0c;感谢开源。这个时代&#xff0c;让我们开发者&#xff0c;可以通过开源&#xff0c;通过开源的Android&#xff0c;学到很多东西。有如此感慨&#xff0c…

基本二叉树

文章目录接口实现三种基本遍历方式获取节点个数获取叶子节点个数获取树的高度返回第K层节点个数返回x所在节点二叉树的销毁OJ二叉树知识点及选择题N0 N2 1由中序和前序&#xff08;或后序&#xff09;确定结构的方法有N个元素的完全二叉树的深度是 logN 1选择题&#xff1a;…

Linux常用命令——sftp命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) sftp 交互式的文件传输程序 补充说明 sftp命令是一款交互式的文件传输程序&#xff0c;命令的运行和使用方式与ftp命令相似&#xff0c;但是&#xff0c;sftp命令对传输的所有信息使用ssh加密&#xff0c;它还…

预处理【详解】

本期介绍&#x1f356; 主要介绍&#xff1a;#define如何定义宏&#xff0c;宏替换的规则&#xff0c;为什么宏定义时不要吝啬我们的括号&#xff0c;为什么宏的参数不能带有副作用&#xff0c;宏和函数的区别。还讲解了预处理符号#和##&#xff0c;#undef指令&#xff0c;众多…

Swift(4)

目录 Dictionary集合 组合赋值符号 区间运算符 字符串字面量里的特殊字符 操作字符 Dictionary集合 相当于java中的Map集合 函数与闭包 函数也可以内嵌 函数其实就是闭包的一种特殊形式&#xff1a;一段可以被随后调用的代码块。闭包中的代码可以访问其生效范围内的变量和…

SpringMVC的@RequestMapping注解

SpringMVC的RequestMapping注解RequestMapping注解的功能RequestMapping注解的位置RequestMapping注解的value属性RequestMapping注解的method属性RequestMapping注解的params属性RequestMapping注解的headers属性什么是headers属性RequestMapping注解的功能 从注解名称上我们…

二叉树23:验证二叉搜索树

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;344. 反转字符串 题目&#xff1a; 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。…

26. 命名空间

前言&#xff1a;如果你接触过c/c/c#/java&#xff0c;那么对于python中的命名空间也是如此&#xff0c;只不过在些许地方存在细微差异&#xff0c;不过倒无伤大雅。 1. 定义 命名空间(Namespace)是从名称到对象的映射&#xff0c;大部分的命名空间都是通过 python 字典来实现…

lamda表达式

lamda表达式可以看作是一个匿名函数。编译器在编译的时候&#xff0c;会将lamda表达式处理成一个仿函数类&#xff0c;类名是类名是不重复的随机名称&#xff08;因为一个作用域中可能存在多个仿函数&#xff09;&#xff0c;返回该仿函数的对象。 lamda既然可以看作是一个匿名…

文件操作(C语言)

目录 1、为什么使用文件 2、什么是文件 程序文件 数据文件 文件名 3、文件的打开和关闭 文件指针 文件的打开和关闭 4、文件的顺序读写 文件读写介绍 文件读写函数 fputc&#xff08;字符 输出/写 函数&#xff09; fgetc&#xff08;字符 输入/读 函数&#xff09; fputs&…

VMware Workstation安装:与 Device/Credential Guard 不兼容

VMware Workstation安装&#xff1a;与 Device/Credential Guard 不兼容 1、快速解决 安装最新版VMware Workstation&#xff0c;例如我安装的是VMware Workstation Pro 17&#xff1a; 是的&#xff0c;解决报错的办法&#xff0c;就是安装/升级VMware Workstation版本。 参…

Aspose.PDF 23.1.0 for .NET Crack

Aspose.PDF for .NET可以在 .NET 程序中生成、屏蔽、编辑甚至将 PDF 文件转换为多种格式&#xff0c;而无需依赖 Adob​​e Acrobat。它是.Net核心对PDF的创新处理&#xff0c;可以在跨平台软件中执行文档操作甚至任务管理。借助 API&#xff0c;用户可以创建、更改、呈现、保护…

Spring Cloud:网关Gateway

✨ Spring Cloud:网关Gateway微服务网关概述为什么需要微服务网关服务网关的介绍Getway基本介绍微服务架构中网关所处位置三大核心概念工作流程入门案例搭建新建模块**cloud-gateway-gateway9527**导入依赖application.yml主启动类实现动态路由测试Predicate 断言基本介绍Route…

详解信奥一本通1290:采药

1290&#xff1a;采药【题目描述】辰辰是个很有潜能、天资聪颖的孩子&#xff0c;他的梦想是称为世界上最伟大的医师。为此&#xff0c;他想拜附近最有威望的医师为师。医师为了判断他的资质&#xff0c;给他出了一个难题。医师把他带到个到处都是草药的山洞里对他说&#xff1…

Fisco Bcos区块链三(webase中间件平台一键部署)

文章目录区块链开荒技术文档&#xff1a;https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html4. Webase一键部署Java环境变量配置MySQL安装Ubuntu安装mysql数据库安装后设置密码&#xff1a;Python部署PyMySQL部署&#xff08;Python3.6&#xff09;拉取…

SpringBoot-过滤器的使用(在访问页面时过滤掉未登录的用户使其不能访问相应页面)

目录 概述 前端编写 页面展示 后端编写 编写接口 过滤器的编写 过滤器功能实验 概述 解决需求&#xff1a;在用户未登录的情况下访问未登录不可访问的页面时&#xff0c;请求将被过滤到&#xff0c;将用户退回登录页面。 技术选型 前端&#xff1a;Vue ElementUI 后端…