Java运算符逻辑控制

news2024/11/26 0:23:39

目录

一、运算符

1.1基本四则运算符(加减乘除模)

1.2增量运算符

1.3关系运算符

1.4自增、自减运算符

1.5逻辑运算符

1.6位运算符

1.7移位运算符

1.8条件运算符(三目运算符)

二、逻辑控制

2.1if语句

2.2switch语句

2.3while/do...while语句

2.4for语句


一、运算符

1.1基本四则运算符(加减乘除模)

运算符:+、-、*、/、%

运算规则与数学计算规则相同,需要注意以下几点

  1. 做除法和取模时,右操作数不能为0
  2. %不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的
  3. 两侧操作数类型不一致时,向类型大的提升
  4. int / int 结果还是int类型,而且会向下取整

1.2增量运算符

运算符:+=、-=、*=、/=、%=

计算规则为:

int a = 10;
a += 1;//等价于a = a + 1;

运算过程中会进行隐式类型转换

int a = 1;
double b = 1.0;
b += a;
//运算后b的值为2.0,int类型的a发生了隐式类型转换

1.3关系运算符

运算符:==、!=、<、>、<=、>=

计算结果是布尔类型的true或者false

1.4自增、自减运算符

运算符:++、--

分为前置++(--)、后置++(--)

计算规则为:

int a = 10;
int b = 0;
int c = 0;
b = a++;//此时a的值为10,b的值为10
c = a;//此时a的值为11,c的值为11
b = ++a;//此时a的值为12,b的值为12

不能对常量进行自增/自减运算

1.5逻辑运算符

运算符:&&、||、!

  • 逻辑与:&&左右的两个表达式必须是布尔表达式,当前表达式的结果和两个表达式有关,同真为真
  • 逻辑或:||左右的两个表达式也必须是布尔表达式,当前表达式的结果和两个表达式有关,同假为假
  • 逻辑非:操作数是布尔表达式,!true为false,!false为true\

存在逻辑短路现象:

  • 短路与:前一个表达式为假时,整个表达式为假,并不会执行第二个表达式
  • 短路或:前一个表达式为真时,整个表达式为真 ,不会执行第二个表达式

1.6位运算符

运算符:&、|、~、^

~是一元运算符,其余都是二元运算符,针对的是数据的某一个位(二进制位)

  • 按位与:只要对应位上有0,则当前位是0
  • 按位或:只要对应位上有1,则当前位是1
  • 按位异或:只要对应位不一样,结果就是1,即:n^n=0 , n^0=n
  • 按位取反:把对应位的数字进行取反

需要注意的是:

  • 位运算不会出现短路
  • 操作数为布尔类型时,位运算和逻辑运算原理相同,但是不存在短路问题

1.7移位运算符

运算符:<<、>>、>>>

  • 左移(<<):左移一个比特位,右侧补零,数值上相当于n*2^x(x为左移的位数)
  • 右移(>>):右移一个比特位,左侧补符号位,数值上相当于n/2^x(x为右移的位数)
  • 无符号右移(>>>):右移一个比特位,左侧补零

1.8条件运算符(三目运算符)

运算符:表达式1?表达式2:表达式3

  • 表达式1必须是布尔表达式,如果1为真,返回表达式2的结果,否则返回表达式3的结果

二、逻辑控制

2.1if语句

和C逻辑相同,括号中必须是布尔表达式,注意花括号的位置(左括号和if在同一行)

2.2switch语句

  • 括号中的变量类型不能是long、float、double、boolean
  • 可以是int类型、short类型、String类型或者枚举类型
  • 参数不能是复杂的表达式
  • 多个case的常量值不能重复

2.3while/do...while语句

  • 括号中必须是布尔表达式
  • break和continue与C语言逻辑相同

2.4for语句

和C逻辑相同,括号中必须是布尔表达式

//for each循环
for (int x:array){
    system.out.print(x+"");
}
//缺点:无法获取到对应的下标

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

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

相关文章

Docker 搭建mysql 连接超时问题,xxl-job启动mysql连接报错

1.本地连接Navicat报错信息&#xff0c;猜测是navicat默认连接超时导致的&#xff0c;后面换成idea一个插件虽然慢但连接上了 2013 - Lost connection to MySQL server at reading initial communication packet 2.启动xxl-job会报错&#xff0c;网上有人mysql驱动与数据库不匹…

【高频SQL基础50题】31-35

又到SQL。 目录 1.查询结果的质量和占比 2.求关注者的数量 3.指定日期的产品价格 4.好友申请 II &#xff1a;谁有最多的好友 5.按日期分组销售产品 1.查询结果的质量和占比 聚合题。 # Write your MySQL query statement below SELECT t1.query_name,ROUND((SUM(t1.r…

问题记录(个人)

备注&#xff1a; 在7月10日记录之前遇到的问题及解决方法: 一&#xff1a;常见的访问问题&#xff1a; 403 Forbidden&#xff1a;&#xff08;未有请求权限&#xff09; 表示服务器理解请求但是拒绝执行它。这通常是由于服务器上的文件或资源没有正确的读、写或执行权限&…

【从零开始的LeetCode-算法】3164.优质数对的总数 II

给你两个整数数组 nums1 和 nums2&#xff0c;长度分别为 n 和 m。同时给你一个正整数 k。 如果 nums1[i] 可以被 nums2[j] * k 整除&#xff0c;则称数对 (i, j) 为 优质数对&#xff08;0 < i < n - 1, 0 < j < m - 1&#xff09;。 返回 优质数对 的总数。 示…

python画图|多个Y轴分列右侧

【1】引言 前述python画图学习中&#xff0c;已经探索过X轴和Y轴的共享&#xff0c;可通过下述链接直达&#xff1a; 西猫雷婶-CSDN博客 但现实的画图实践中总会有新的要求&#xff0c;之前将所有轴合到一起的形式可能不再适用&#xff0c;因此&#xff0c;很有必要探索多个…

下一代安全:融合网络和物理策略以实现最佳保护

在当今快速发展的技术环境中&#xff0c;网络和物理安全融合变得比以往任何时候都更加重要。随着物联网 (IoT) 和工业物联网 (IIoT) 的兴起&#xff0c;组织在保护数字和物理资产方面面临着独特的挑战。 本文探讨了安全融合的概念、说明其重要性的实际事件以及整合网络和物理安…

Pandas处理时间序列之光谱分析与聚类

import matplotlib.pylab as plt %matplotlib inline import numpy as np from numpy import fft import pandas as pd 一、光谱分析 • 将时间序列分解为许多正弦或余弦函数的总和 • 这些函数的系数应该具有不相关的值 • 对正弦函数进行回归 光谱分析应用场景 基于光谱的…

Windows 修改 Alt+Tab 键 切换 新版 Microsoft Edge 单个标签页/窗口

Windows 10 修改 AltTab 键 切换 新版 Microsoft Edge 单个标签页/窗口 解决方案&#xff1a;在 Windows 设置 的搜索框中 搜索 alt&#xff0c;选择 选择按下 AltTab 时显示的窗口和选项卡&#xff0c;将 按 Alt Tab 将显示 选为 仅打开的窗口 详细过程&#xff1a; 在 Win…

打造高效3D打印利器:STEP转STL格式转换器

随着3D打印技术的日益普及&#xff0c;越来越多的设计师和工程师开始使用三维建模软件来创建复杂的产品模型。然而&#xff0c;不同的软件往往采用不同的文件格式&#xff0c;这给模型的共享和打印带来了诸多不便。本文将重点介绍STEP格式转STL格式的转换器&#xff0c;帮助大家…

【图论】(三)图论的并查集问题

图论的并查集问题 并查集理论基础并查集理论路径压缩代码模板模拟过程 找亲戚寻找存在的路径冗余连接冗余连接II 并查集理论基础 参考学习视频&#xff1a; 图论——并查集(详细版) 并查集理论 并查集主要用于处理一些不相交集合的合并问题&#xff08;连通性问题&#xff0…

汽车网络安全 -- 后量子密码时代还远吗?

目录 1.量子计算对密码学的威胁 1.1 传统密码学速览 1.2 量子计算对密码学的威胁 2.后量子密码学 2.1 量子计算原理 2.2 后量子密码学 3.未来汽车网络安全面临的威胁 3.1 量子计算对汽车的威胁 3.2 TC4xx对于PQC算法的支持 国庆抽空回顾了下Hitex组织的《Designing wi…

西门子S7-1200选型指南之概述

S7-1200 控制器概述 S7-1200 虽然只是中小型控制器&#xff0c;但是功能很全面。它具有较高性能&#xff0c;并且具有很强的扩展能力&#xff0c;通信能力多种多样&#xff0c;本体即具有各种常见工艺功能&#xff0c;此外也具备西门子常见的诊断功能&#xff0c;下面将分几部…

vue3 + vite + cesium项目

GitHub - tingyuxuan2302/cesium-vue3-vite: 项目基于 vue3 vite cesium&#xff0c;已实现常见三维动画场&#xff0c;欢迎有兴趣的同学加入共建&#xff0c;官网服务器相对拉胯&#xff0c;请耐心等候...https://github.com/tingyuxuan2302/cesium-vue3-vite/tree/github

计算机网络:数据链路层 —— 数据链路层的三个重要问题

文章目录 数据链路层的重要问题封装成帧封装过程帧的数据载荷 透明传输实现透明传输 差错检测传输差错误码&#xff08;比特差错&#xff09;分组丢失分组失序分组重复 奇偶校验循环冗余校验生成多项式方法流程 纠错码 数据链路层的重要问题 封装成帧 在计算机网络中&#xf…

基于Java+SpringBoot+Uniapp的博客系统设计与实现

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

Jenkins整合Docker实现CICD自动化部署(若依项目)

前期准备 提前准备好jenkins环境 并且jenkins能使用docker命令&#xff0c;并且已经配置好了jdk、node、maven环境&#xff0c;我之前写了安装jenkins的博客&#xff0c;里面讲得比较详细&#xff0c;推荐用我这种方式安装 docker安装jenkins&#xff0c;并配置jdk、node和m…

【分布式架构】分布式事务理论与实践

一、分布式事务理论 1. ACID理论 场景&#xff1a;单机架构中保证事务的理论 2. CAP理论 场景&#xff1a;分布式架构中保证事务的理论 概念 一致性&#xff1a;数据在不同的节点每一时刻都是一致的可用性&#xff1a;一部分的节点出现异常&#xff0c;但是系统仍然可用分…

【3dgs】3DGS与NeRF对比

以下是 3DGS&#xff08;3D Geometry Sensing&#xff09;与 NeRF&#xff08;Neural Radiance Fields&#xff09;对比表格&#xff1a; 更加详细的资料&#xff0c;轻参考&#xff1a; NERF/3DGS 对比维度3DGS (3D Geometry Sensing)NeRF (Neural Radiance Fields)基本原理…

【Linux进程信号】Linux信号产生机制详解:掌握系统通信的关键

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;Linux “ 登神长阶 ” &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀Linux进程信号 &#x1f4d2;1. 信号入门&#x1f4dc;2. 信号捕捉初识&#x1f4da;3. 信号…

Windows应急响蓝安服面试

Windows应急响应 蓝队溯源流程 学习Windows应急首先要站在攻击者的角度去学习一些权限维持和权限提升的方法.,文章中的方法其实和内网攻防笔记有类似l红队教你怎么利用 蓝队教你怎么排查 攻防一体,应急响应排查这些项目就可以 端口/服务/进程/后门文件都是为了权限维持,得到s…