Java-运算符和控制语句(上)(基于c语言的补充)

算术运算符

关于求余
在这里插入图片描述
不管分子,分母是正还是负,对于分母,直接取正;对于分子若有负号,则先提取出来;剩下两个正的分子分母运算;最后,若刚才的分子有负号,对最后的结果添加负号。

做除法和取模时,右操作数不能为0
在这里插入图片描述
在这里插入图片描述

% 不仅可以对整型取模,也可以对double类型取模
在这里插入图片描述

自增/自减运算符 ++ – 一个特例
在这里插入图片描述

关系运算符
其计算结果是 true 或者 false
在这里插入图片描述
true<5,表达方式不正确;正确的写法如下:
在这里插入图片描述

在这里插入图片描述

逻辑运算符

短路求值
在这里插入图片描述
我们都知道, 计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值.
对于 &&, 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.
对于 ||, 如果左侧表达式值为 true,则表达式结果一定是 true, 无需计算右侧表达式.

& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值.少用
在这里插入图片描述

位运算符 & | ~ ^
位操作表示 按二进制位运算
按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为1,可用于标记不同点

移位运算
左移 <<: 最左侧位不要了, 最右侧补 0.

右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

无符号右移 >>>: 最右侧位不要了, 最左侧补 0. 左移 1 位, 相当于原数字 * 2;右移 1 位, 相当于原数字 / 2

条件运算符
表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;
当 表达式1的值为 false 时, 整个表达式的值为 表达式3 的值.

求两个数的最大值
在这里插入图片描述

表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换
在这里插入图片描述
表达式不能单独存在,其产生的结果必须要被使用
在这里插入图片描述

运算符的优先级
运算符之间是有优先级的. 具体的规则我们不必记忆. 在可能存在歧义的代码中加上括号即可

逻辑控制
顺序结构和分支结构

if语句
if(布尔表达式){
// 语句
}

if(布尔表达式){
// 语句1
}else{
// 语句2
}

if(布尔表达式1){
// 语句1
}else if(布尔表达式2){
// 语句2
}else{
// 语句3
}

        int a=34;if(a>0) {System.out.println(a);}if(a>0) {System.out.println("a>0");} else{System.out.println("a<0");}a=0;if(a>0) {System.out.println("a>0");}else if(a==0){System.out.println("a==0");}else{System.out.println("a<0");}

括号内必须为布尔表达式

判断一个数字是奇数还是偶数
在这里插入图片描述

判断一个年份是否为闰年
在这里插入图片描述
在这里插入图片描述

分号问题
在这里插入图片描述
此处多写了一个 分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块.

悬垂 else 问题,没有花括号
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
上面这两个都是不对的

在这里插入图片描述
负数的补码是原码的符号位不变,数值位取反后加1:从1000 0001 到 1111 1111(-1到-127) 最后规定1000 0000为-128
在这里插入图片描述

在这里插入图片描述

switch 语句
在这里插入图片描述
witch的括号内只能是以下类型的表达式:
基本类型:byte、char、short、int,注意不能是long类型
引用类型:String常量串、枚举类型
在这里插入图片描述
正确写法如下:
在这里插入图片描述

break 不要遗漏, 否则会失去 “多分支选择” 的效果
在这里插入图片描述

switch 不能表达复杂的条件
在这里插入图片描述

while 循环
while(循环条件:布尔表达式){
循环语句;}

这里的循环条件为布尔表达式
在这里插入图片描述

打印 1 - 10 的数字
在这里插入图片描述

计算 1 - 100 的和
在这里插入图片描述

计算 5 的阶乘
在这里插入图片描述

计算 1! + 2! + 3! + 4! + 5!
在这里插入图片描述

和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句
和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.
在这里插入图片描述
此时 ; 为 while 的语句体(这是一个空语句), 实际的 { } 部分和循环无关. 此时循环条件 num <= 10 恒成立, 导致代码 死循环了

break语句

找到 100 - 200 中第一个 3 的倍数
在这里插入图片描述

continue语句

找到 100 - 200 中所有 3 的倍数
在这里插入图片描述

for循环
for(表达式①;布尔表达式②;表达式③){
表达式④;
}

for循环快捷键:fori

计算 1 - 100 的和
在这里插入图片描述


计算 5 的阶乘
在这里插入图片描述


计算 1! + 2! + 3! + 4! + 5!
在这里插入图片描述


do while语句
一般 do while 很少用到, 更推荐使用 for 和 while.


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

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

相关文章

Java版 招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计tbms

​ 项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以…

scala中json4s 使用详解

预备知识 json4s的数据结构AST (Abstract Syntax Tree)。 sealed abstract class JValue case object JNothing extends JValue // zero for JValue case object JNull extends JValue case class JString(s: String) extends JValue case class JDouble(num: Double) extend…

数字化时代,数据仓库和商业智能BI系统演进的五个阶段

数字化在逐渐成熟的同时&#xff0c;社会上也对数字化的性质有了进一步认识。当下&#xff0c;数字化除了前边提到的将复杂的信息、知识转化为可以度量的数字、数据&#xff0c;在将其转化为二进制代码&#xff0c;引入计算机内部&#xff0c;建立数据模型&#xff0c;统一进行…

CAS 一些隐藏的知识,您了解吗

目录 ConcurrentHashMap 一定是线程安全的吗 CAS 机制的注意事项 使用java 并行流 &#xff0c;您要留意了 ConcurrentHashMap 在JDK1.8中ConcurrentHashMap 内部使用的是数组加链表加红黑树的结构&#xff0c;通过CASvolatile或synchronized的方式来保证线程安全的,这些原理…

TikTok或将于8月底关闭半闭环、速卖通或将推出“半托管”模式

《出海周报》是运营坛为外贸企业主和外贸人独家打造的重要资讯栏目&#xff0c;聚焦企业出海、海外市场动态、海外监管政策等方面&#xff0c;以简捷的方式&#xff0c;提升读者获取资讯的效率。 接下来运营坛为大家带来第15期出海周报&#xff0c;快来看看这周国内外市场发生了…

C++--红黑树

1.什么是红黑树 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出俩倍&#xff0c;因…

【Unity细节】Unity中的层级LayerMask

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 &#x1f636;‍&#x1f32b;️收录于专栏&#xff1a;unity细节和bug &#x1f636;‍&#x1f32b;️优质专栏 ⭐【…

Mybatis Plus中使用LambdaQueryWrapper进行分页以及模糊查询对比传统XML方式进行分页

传统的XML分页以及模糊查询操作 传统的XML方式只能使用limit以及offset进行分页&#xff0c;通过判断name和bindState是否为空&#xff0c;不为空则拼接条件。 List<SanitationCompanyStaff> getSanitationStaffInfo(Param("name") String name,Param("bi…

前端---需要了解浏览器相关知识--浏览器请求服务器资源---缓存

知识点1: 掘金1&#xff1a;浏览器缓存 掘金2 :浏览器缓存 一、浏览器缓存 请求&#xff08;静态资源 &#xff5c; 动态资源&#xff09; 一、缓存是什么&#xff1f; 如果没有缓存的机制 每次都要重新请求静态资源 1.从网络上的下载时间&#xff0c;肯定大于从硬盘里读的…

【S32K 进阶之旅】S32K 芯片的解锁

在使用 S32K1xx MCU 的过程中&#xff0c;因为某些不当操作导致芯片被锁、加密的情况偶有发生&#xff0c;在此总结一篇如何解锁芯片的文档&#xff0c;希望能够帮到有需要的人。 1. S32K 芯片被锁的现象及原因分析1&#xff09;在S32K 系列 MCU 开发和生产过程中&#xff…

常用系统命令

重定向 cat aa.txt > bbb.txt 将输出定向到bbb.txt cat aaa.txt >> bbb.txt 输出并追加查看进程 ps ps -ef 显示所有进程 例⼦&#xff1a;ps -ef | grep mysql |&#xff1a;管道符 kill pid 结束进程&#xff0c; 如 kill 3732&#xff1b;根据进程名结束进程可以先…

Qt使用qml(QtLocation)显示地图

一、qt版本和QtLocation模块版本确认 如果qt版本过低的话是没有QtLocation模块的&#xff0c;我的版本如下 构建工具版本如下 二、qml代码编写 1、工程中添加模块 首先在工程中添加模块quickwidgets positioning location 2、添加资源文件 3、在资源文件中添加qml文件 …

Jenkins改造—nginx配置鉴权

先kill掉8082的端口进程 netstat -natp | grep 8082 kill 10256 1、下载nginx nginx安装 EPEL 仓库中有 Nginx 的安装包。如果你还没有安装过 EPEL&#xff0c;可以通过运行下面的命令来完成安装 sudo yum install epel-release 输入以下命令来安装 Nginx sudo yum inst…

windows上的docker自动化部署到服务器脚本

1、mvn install后&#xff0c;双击这个bat&#xff0c;实现docker build后上传到124服务器&#xff0c;并且重启124服务器 **echo offsetlocal:: 定义镜像名称和版本变量 set IMAGE_NAMEweb set IMAGE_VERSION1.3.1:: 清理本地文件 echo Cleaning up... del service-%IMAGE_N…

中大许少辉博士中国建筑出版传媒八一新书《乡村振兴战略下传统村落文化旅游设计》百度百科新闻

中大许少辉博士中国建筑出版传媒八一新书《乡村振兴战略下传统村落文化旅游设计》百度百科新闻&#xff1a; 乡村振兴战略下传统村落文化旅游设计 - 百度百科 https://baike.baidu.com/item/乡村振兴战略下传统村落文化旅游设计/62588677 概览 《乡村振兴战略下传统村落文化旅游…

c++——静态成员变量、静态成员函数和const修饰的静态成员变量

一、c静态成员变量 在C中&#xff0c;静态成员变量&#xff08;Static Member Variable&#xff09;是类的一种特殊类型的成员变量&#xff0c;它被类的所有实例共享&#xff0c;而不是每个实例都有自己的副本。静态成员变量在类的所有对象之间保持唯一的状态&#xff0c;具有…

Redisson实现分布式锁示例

一、引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.16.0</version></dependency>二、配置类 import org.redisson.Redisson; import org.redisson.api.RedissonClient;…

Hadoop学习:深入解析MapReduce的大数据魔力(三)

Hadoop学习&#xff1a;深入解析MapReduce的大数据魔力&#xff08;三&#xff09; 3.5 MapReduce 内核源码解析3.5.1 MapTask 工作机制3.5.2 ReduceTask 工作机制3.5.3 ReduceTask 并行度决定机制 3.6 数据清洗&#xff08;ETL&#xff09;1&#xff09;需求2&#xff09;需求…

Java数据库连接池原理及spring boot使用数据库连接池(HikariCP、Druid)

和线程池类似&#xff0c;数据库连接池的作用是建立一些和数据库的连接供需要连接数据库的业务使用&#xff0c;避免了每次和数据库建立、销毁连接的性能消耗&#xff0c;通过设置连接池参数可以防止建立连接过多导致服务宕机等&#xff0c;以下介绍Java中主要使用的几种数据库…

【学习FreeRTOS】第11章——FreeRTOS中任务相关的其他API函数

1.函数总览 序号函数描述1uxTaskPriorityGet()获取任务优先级2vTaskPrioritySet()设置任务优先级3uxTaskGetNumberOfTasks()获取系统中任务的数量4uxTaskGetSystemState()获取所有任务的状态信息5vTaskGetInfo()获取单个任务的状态信息6xTaskGetCurrentTaskHandle()获取当前任…