首页 > 编程语言 >Java学习:运算符

Java学习:运算符

时间:2024-04-09 11:30:24浏览次数:17  
标签:学习 Java ++ System 运算符 int println out

1. 什么是运算符

计算机的最基本的用途之一就是执行数学运算,比如

int a = 10;
int b = 20;
a + b;
a < b;
上述 + 和 < 等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。
作为一门计算机语言, Java 也提供了一套丰富的运算符来操纵变量。 Java 中运算符可分为以下:算术运算符 (+ - * /)、关系运算符 (< > ==) 、逻辑运算符位运算符移位运算符以及条件运算符等。

2. 算术运算符

1. 基本四则运算符:加减乘除模(+ - * / %)


int a = 20;
int b = 10;

System.out.println(a + b); // 30
System.out.println(a - b); // 10
System.out.println(a * b); // 200
System.out.println(a / b); // 2
System.out.println(a % b); // 0 --->模运算相当于数学中除法的余数

注意: 都是二元运算符,使用时必须要有左右两个操作数 int / int 结果还是int类型,而且会向下取整

int a = 3;
int b = 2;
// 在数学中应该是1.5 但是在Java中输出结果为1 会向下取整,即小数点之后全部舍弃掉了
System.out.println(a / b);
// 如果要得到数学中的结果,可以使用如下方式
double d = a*1.0 / b;
System.out.println(d);

2. 增量运算符 += -= *= %=

该种类型运算符操作完成后,会将操纵的结果赋值给左操作数
int a = 1;
a += 2; // 相当于 a = a + 2
System.out.println(a); // 输出3
a -= 1; // 相当于 a = a - 1
System.out.println(a); // 输出2
a *= 3; // 相当于 a = a * 3
System.out.println(a); // 输出6
a /= 3; // 相当于 a = a / 3
System.out.println(a); // 输出2
a %= 3; // 相当于 a = a % 2
System.out.println(a); // 输出2
注意:只有变量才能使用该运算符,常量不能使用。

3. 自增/自减运算符 ++ --

++是给变量的值+1,--是给变量的值-1

值得注意的是,如果++混合使用的时候,前置++和后置++会有不同的效果,代码如下

int a = 1;
a++; // 后置++ 表示给a的值加1,此时a的值为2
System.out.println(a++); // 注意:后置++是先使用变量原来值,表示式结束时给变量+1,因此输出2
System.out.println(a); // 输出3
++a; // 前置++ 表示给a的值加1
System.out.println(++a); // 注意:前置++是先给变量+1,然后使用变量中的值,因此输出5
System.out.println(a); // 输出5
// --操作符给操作-1,与++含义类似

注意: 如果单独使用,【前置 ++ 【后置 ++ 没有任何区别 如果混合使用,【前置 ++ 先 +1 ,然后使用变量 +1 之后的值,【后置 ++ 先使用变量原来的值,表达式结束时给变量+1 只有变量才能使用自增 / 自减运算符,常量不能使用,因为常量不允许被修改

3. 关系运算符

关系运算符主要有六个 : == != < > <= >= ,其计算结果是 true 或者 false 。 注意:当需要多次判断时,不能连着写,比如: 3 < a < 5 , Java 程序与数学中是有区别的
int a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false

4. 逻辑运算符(重点)

逻辑运算符主要有三个 : && || ! ,运算结果都是 boolean 类型。

1. 逻辑与 &&

两个表达式都为真,结果才是真,只要有一个是假,结果就是假。

int a = 1;
int b = 2;
System.out.println(a == 1 && b == 2); // 左为真 且 右为真 则结果为真
System.out.println(a == 1 && b > 100); // 左为真 但 右为假 则结果为假
System.out.println(a > 100 && b == 2); // 左为假 但 右为真 则结果为假
System.out.println(a > 100 && b > 100); // 左为假 且 右为假 则结果为假

2. 逻辑 ||

语法规则:表达式 1 || 表达式 2 ,左右表达式必须是 boolean 类型的结果。
相当于现实生活中的或,比如:买房子交钱时,全款 或者 按揭都可以,如果全款或者按揭,房子都是你的, 否则站一边去。
int a = 1;
int b = 2;
System.out.println(a == 1 || b == 2); // 左为真 且 右为真 则结果为真
System.out.println(a == 1 || b > 100); // 左为真 但 右为假 则结果也为真
System.out.println(a > 100 || b == 2); // 左为假 但 右为真 则结果也为真
System.out.println(a > 100 || b > 100); // 左为假 且 右为假 则结果为假
注意:左右表达式至少有一个位真,则结果为真

 3. 逻辑非 !

真变假,假变真。

 

int a = 1;
System.out.println(!(a == 1)); // a == 1 为true,取个非就是false
System.out.println(!(a != 1)); // a != 1 为false,取个非就是true

4. 短路求值

&& 和 || 遵守短路求值的规则 . 我们都知道 , 计算 10 / 0 会导致程序抛出异常 . 但是上面的代码却能正常运行 , 说明 10 / 0 并没有真正被求值 .
System.out.println(10 > 20 && 10 / 0 == 0); // 打印 false
System.out.println(10 < 20 || 10 / 0 == 0); // 打印 true

注意 : 对于 && , 如果 左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式 . 对于 ||, 如果 左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式 . & 和 | 如果表达式结果为 boolean 时 , 也表示逻辑运算 . 但与 && || 相比 , 它们不支持短路求值 .
System.out.println(10 > 20 & 10 / 0 == 0); // 程序抛出异常
System.out.println(10 < 20 | 10 / 0 == 0); // 程序抛出异常

标签:学习,Java,++,System,运算符,int,println,out
From: https://blog.csdn.net/weixin_61619114/article/details/137498424

相关文章

  • 基于Java+SpringBoot+Vue前后端分离大学生校园兼职求职招聘信息系统(适合毕业设计项目
    文章目录目录前言一、系统设计1、系统运行环境2.系统架构设计二、系统核心技术三.系统功能实现四.实现代码五.源码获取前言 本文旨在探讨并设计一个基于Springboot框架的大学生校园兼职求职招聘信息系统。该系统的设计与实现,旨在满足大学生寻找兼职工作的......
  • Javascript Promise用法详解
    1、约定本文的demo代码有些是伪代码,不可以直接执行。没有特殊说明,本文所有demo都是基于ES6规范。Object.method代表是静态方法,Object#method代表的是实例方法。如Promise#then代表的是Promise的实例方法,Promise.resolve代表的是Promise的静态方法.2、什么......
  • 蓝桥杯学习日记
    目录方法二分+区间合并搜索与图论全排列n皇后问题走迷宫树的重心图中点的层次有向图的拓扑排序数学知识数论质数:在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数,或者素数质数判定-试除法null质因数:将正整数表示为一连串的质因子相乘分解质因数-试除法筛质数约数约数......
  • 文献学习-31-内窥镜摄像机运动模仿学习的深度齐次变换预测
    DeepHomographyPredictionforEndoscopicCameraMotionImitationLearningAuthors: MartinHuber,SébastienOurselin, ChristosBergeles, andTomVercauterenKeywords:Computervision·Roboticsurgery·ImitationlearningSource:  M......
  • 一个简单的Java程序,结合HTML页面,用于随机抽取人员
    importjava.util.ArrayList;importjava.util.List;importjava.util.Random;importjava.util.Scanner;publicclassRandomNamePicker{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);List<String&g......
  • 使用Java编写的在线小说爬虫框架
    1.引言网络上有许多优秀的小说网站,提供了丰富的小说资源,但是想要将这些小说保存到本地阅读却不太容易。本文将介绍如何使用Java编写一个简单而强大的小说爬虫框架,帮助我们方便地从在线小说网站爬取小说内容。2.框架设计2.1主要功能支持多个小说网站的爬取,如起点、纵......
  • Java 流程控制语句
    在Java中,流程控制语句用于控制程序的执行顺序。这些语句允许程序根据不同的条件执行不同的代码块,或者重复执行某些操作。以下是Java中常见的流程控制语句:条件控制语句条件语句在编程中用于根据特定条件执行不同的代码分支。在Java中,主要的条件语句包括if、if...else、if........
  • 20240409报错修改学习
    未配置SpringBoot配置注解处理器spring:datasource:druid:driver-class-name:com.mysql.jdbc.Driverurl:jdbc:mysql://localhost:3306/mini_springmvc?serverTimezone=UTCusername:rootpassword:1234mybatis-plus:global-config:......
  • 京东详情API接口请求代码源码(java)
    京东详情API接口是用于获取京东商品详细信息的接口,它允许开发者通过发送请求,获取商品的描述、价格、评价等信息。下面是一个关于京东详情API接口的示例文档,包括接口地址、请求参数、响应参数等内容。京东详情API接口文档接口地址:https://api-gw.onebound.cn/jd/item_get请求......
  • 前端学习-UI框架学习-Bootstrap5-016-卡片
    菜鸟教程链接简单的卡片<template><divclass="card"><h4class="card-title">标题</h4><imgsrc="../assets/th.jfif"alt="537"class="card-img-top"style="width:50px;......