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

news2025/5/30 20:51:01

算术运算符

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

做除法和取模时,右操作数不能为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.coloradmin.cn/o/872282.html

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

相关文章

fork:创建一个子进程

函数原型&#xff1a;pid_t fork&#xff08;void&#xff09;&#xff1b; 返回值&#xff1a; 成功&#xff1a;返回子进程id给附近父进程&#xff0c;返回0给子进程 失败&#xff1a;返回-1&#xff0c;并且设置错误号&#xff0c;同时子进程不会被创建 注意&#xff1…

C++ QT(一)

目录 初识QtQt 是什么Qt 能做什么Qt/C与QML 如何选择Qt 版本Windows 下安装QtLinux 下安装Qt安装Qt配置Qt Creator 输入中文配置Ubuntu 中文环境配置中文输入法 Qt Creator 简单使用Qt Creator 界面组成Qt Creator 设置 第一个Qt 程序新建一个项目项目文件介绍项目文件*.pro样式…

锁与原子操作的底层原理

偏向锁 在一个系统当中&#xff0c;大部分时间都不存在并发问题&#xff0c;但频繁的加锁释放锁又会占用大量系统资源。因此为了让线程获得锁的代价更低而引入了偏向锁。 获得偏向锁 1&#xff09;检查该锁是否被当前线程持有 2&#xff09;通过CAS操作修改对象头 3&#…

python环境下载安装教程,python运行环境怎么下载

本篇文章给大家谈谈python安装步骤以及环境变量配置&#xff0c;以及下载python需要设置环境变量吗&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 1.https://www.python.org/downloads/windows/ 下载适合自己电脑的python安装包 2.下载后安装即可 3.配置环…

Vue中如何更好地封装组件?

子组件接受父组件传递的事件 1.子组件使用事件名"$emit(父组件中传递的事件名,想给父组件传递的参数(可选))" click"$emit(click)" 2.子组件使用 v-on"$listeners" 父组件&#xff1a; <template><div id"app"><myCo…

Ceph分布式存储系统优化分析

Ceph支持多种存储访问接口&#xff0c;现有的多种性能测试工具都可用于Ceph的性能测试&#xff0c;如测试块接口性能的fio&#xff0c;iometer等&#xff1b;测试CephFS接口的filebench&#xff0c;fio等;测试对象接口的cosbench等。Ceph有专用的基准测试集CBT&#xff0c;其包…

并查集的原理与实现

1.概念 2.生活中的例子 小弟-老大&#xff1b; 帮派识别 3.实现 3.1 初始化 3.2 中间过程 3.3合并 3.4 并查集路径优化 直接把下面的节点指向最终的老大。 3.5 伪代码实现 3.6JAVA实现 findRoot: 谁是帮派的老大。例如山鸡的老大是陈浩南 connected: 我们是不是同一个大…

【机器学习 | 数据预处理】 提升模型性能,优化特征表达:数据标准化和归一化的数值处理技巧探析

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

勇敢牛牛,爱吃青草

牛顿问题&#xff08;牛吃草问题 / 消长问题&#xff09; 牛顿问题&#xff08;牛吃草问题/消长问题&#xff09; 牛顿问题&#xff08;牛吃草问题/消长问题&#xff09; 牧场上有一片青草&#xff0c;每天都生长得一样快。这片青草供给 10 头牛吃&#xff0c;可以吃 22 天&…

元宇宙时代超高清视音频技术白皮书关于流媒体协议和媒体传输解读

流媒体协议 元宇宙业务场景对流媒体传输的实时性和互动性提出了更高的要求&#xff0c;这就需要在传统的 RTMP、SRT、 HLS 等基础上增加实时互动的支持。实时互动&#xff0c;指在远程条件下沟通、协作&#xff0c;可随时随地接入、实时地传递虚实融合的多维信息&#xff0c;身…

LangChain-ChatGLM在WIndows10下的部署

LangChain-ChatGLM在WIndows10下的部署 参考资料 1、LangChain ChatGLM2-6B 搭建个人专属知识库中的LangChain ChatGLM2-6B 构建知识库这一节&#xff1a;基本的逻辑和步骤是对的&#xff0c;但要根据Windows和现状做很多调整。 2、没有动过model_config.py中的“LORA_MOD…

Idea中使用statement接口对象,显示mysql版本号,所有库和表名

使用statement 接口对象&#xff0c;进行以下操作&#xff1a; 显示数据库版本号显示所有库显示所有库中的table表 显示数据库版本号&#xff1a; public class StatementDemo {Testvoid showall(){try{Statement st conn.createStatement();ResultSet rs st.executeQuery(…

C++_模板初阶

在面向对象中&#xff0c;我们可以使用重载来实现多态。 但是问题在于&#xff0c;重载的函数仅仅是类型不同&#xff0c;代码复用率比较低&#xff0c;只要有新的类型出现时&#xff0c;就要增加对应的函数&#xff1b;另一方面它的代码可维护性比较低&#xff0c;一个出错可…

python递归实现逆序输出数字

一、问题描述 编程实现将输入的整数逆序输出 二、问题分析 逆序输出数字实际是一个数值问题的递归 三、算法设计 该问题要求输入任意一个整数&#xff0c;实现它的逆序输出。首先判断输入的整数是正整数还是负整数&#xff0c;如果是负整数&#xff0c; 则在逆序输出前应先…

1059 Prime Factors

个人学习记录&#xff0c;代码难免不尽人意。 Sample Input: 97532468 Sample Output: 975324682^211171011291 下面是我第一次自己写的错误代码&#xff0c;虽然测试点都通过了&#xff0c;但是是因为测试样例有限的原因。 #include<cstdio> #include<iostream> #…

防御第九次作业

一、根据以下问题总结当天内容 1. SSL工作过程是什么&#xff1f; 当客户端向一个 https 网站发起请求时&#xff0c;服务器会将 SSL 证书发送给客户端进行校验&#xff0c;SSL 证书中包含一个公钥。校验成功后&#xff0c;客户端会生成一个随机串&#xff0c;并使用受访网站的…

OSI七层模型及TCP/IP四层模型

目录 OSI七层模型 TCP/IP四层模型 OIS七层模型和TCP/IP模型图 七层详解 两种模型比较 为什么OSI七层体系结构不常用 四层详解 网络为什么要分层&#xff1f; 说说 OSI 七层模型和 TCP/IP 四层模型的关系和区别 OSI七层模型 OSI&#xff08;Open System Interconnect&a…

5.3 个人隐私保护

数据参考&#xff1a;CISP官方 目录 一、数据泄露与隐私保护问题二、信息的泄露途径三、个人隐私信息保护四、组织机构敏感信息保护 一、数据泄露与隐私保护问题 1、数据泄露事件 数据的价值已经得到高度的认可不可避免的面临安全威胁2018年华住集团数据泄露事件中国电信…

代码控制鼠标光标移动并点击和代码模拟键盘按下(C#)

前面介绍过通过代码的方式模拟键盘按下&#xff0c;博文如下&#xff1a; C#通过代码的方式模拟键盘按下_c# 模拟键盘输入_zxy2847225301的博客-CSDN博客 这个博文是通过win32的keybd_event实现&#xff0c;可能会未来的window版本中被淘汰(不是我说的&#xff0c;看到老外一…

简单线性回归:预测事物间简单关系的利器

文章目录 &#x1f340;简介&#x1f340;什么是简单线性回归&#xff1f;&#x1f340;简单线性回归的应用场景使用步骤&#xff1a;注意事项&#xff1a; &#x1f340;代码演示&#x1f340;结论 &#x1f340;简介 在数据科学领域&#xff0c;线性回归是一种基本而强大的统…