Day13-Java基础之运算符和表达式

运算符和表达式

运算符:

就是对常量或者变量进行操作的符号。

比如: + - * /

表达式:

用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式。

比如:a + b 这个整体就是表达式。

而其中+是算术运算符的一种,所以这个表达式也称之为算术表达式。

注意:在算数运算中,整数之间的操作结果只能得到整数,若想得到小数需要小数参与运算

练习:数值拆分

需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

代码示例:

//1.键盘录入一个三位数
//导包 --- 创建对象 --- 接收数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number = sc.nextInt();//123
​
//2.获取这个三位数的个位、十位、百位并打印出来
//公式:
//针对于任意的一个数而言
//个位: 数字 % 10
int ones = number % 10;
//十位: 数字 / 10 % 10
int tens = number / 10 % 10;
//百位: 数字 / 100 % 10
int hundreds = number / 100  % 10;
​
//输出结果
System.out.println(ones);
System.out.println(tens);
System.out.println(hundreds);

类型转换

隐式转换

也叫自动类型提升。就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现,是程序自动帮我们完成的。

取值范围从小到大的关系:

byte short int long float double

案例:

byte b1 = 10;
byte b2 = 20;
??? result = b1 + b2;//int
问变量result是什么类型的?

解释:

因为b1和b2都是byte类型的。所以在参与计算的时候,变量b1和变量b2里面的值都会自动提升为int类型的。最终其实就是两个int类型的相加,最终结果也是int类型的。

强制转换

如果要把一个取值范围大的数据或者变量赋值给另一个取值范围小的变量。是不允许直接操作。如果一定要这么干,就需要加入强制转换。

格式:目标数据类型 变量名 = (目标数据类型)被强转的数据;

显然,强制类型转换有时会导致数据精度的丢失

字符串的+操作

当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。

案例:

1 + "abc" + 1

结果:"1abc1"

值得注意的是,字符的+操作和字符串有所不同:

当+操作中出现了字符,会拿着字符到计算机内置的ASCII码表中去查对应的数字,然后再进行计算。

案例:

char c = 'a';
int result = c + 0;
System.out.println(result);//97

ASCII码表中:

'a' ----- 97

'A' ----- 65

自增和自减

分类:

++  自增运算符
--  自减运算符

++:就是把变量里面的值+1

--:就是把变量里面的值-1

使用方式:

  • 放在变量的前面,我们叫做先++。 比如:++a

  • 放在变量的后面,我们叫做后++。 比如:a++

注意点:

不管是先++,还是后++。单独写在一行的时候,运算结果是一模一样的。

逻辑运算符

异或^

计算规则:如果两边相同,结果为false,如果两边不同,结果为true

System.out.println(true^false);//不同返回true
System.out.println(true^true);//相同返回false
逻辑与&和逻辑或|

&:一假则假

|:一真则真

短路与&&和短路或||

执行结果和逻辑与和或完全相同,增加了短路效果

当左边不能确定整个表达式的结果,右边才会执行。当左边能确定整个表达式的结果,那么右边就不会执行了。从而提高了代码的运行效率。

三元运算符

格式:关系表达式 ? 表达式1 :表达式2 ;

案例:动物园里有两只老虎,两只老虎的体重分别为通过键盘录入获得,请用程序实现判断两只老虎的体重是否相同。

System.out.println("enter two tigers weight:");
double t1=sc.nextDouble();
double t2=sc.nextDouble();
System.out.println(t1==t2?true:false);

案例:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm。请用程序实现获取这三个和尚的最高身高。

int h1=150;
int h2=210;
int h3=165;
int max=h1>h2?h1:h2;
max=max>h3?max:h3;
System.out.println("The highest is "+max);

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

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

相关文章

Python(11):网络编程

文章目录 一、一些基本概念二、软件的开发架构(c/s架构和b/s架构)三、OSI模型四、socket套接字编程1.socket编程过程2.python中的socket编程 一、一些基本概念 来了解一些网络的基本概念 名词解释IP(互联网协议地址)IP用来标识网…

【华为OD机试C++】统计字符

《最新华为OD机试题目带答案解析》:最新华为OD机试题目带答案解析,语言包括C、C++、Python、Java、JavaScript等。订阅专栏,获取专栏内所有文章阅读权限,持续同步更新! 文章目录 描述输入描述输出描述示例代码描述 输入一行字符,分别统计出包含英文字母、空格、数字和其它…

linux设置程序在开机时自启动

​常见的有三种方式:1、/etc/rc.local文件中添加自启动命令 对于某些没有使用systemd的Linux发行版,可以在/etc/rc.local文件中添加自启动命令。请确保该文件具有可执行权限。例如,在/etc/rc.local文件中添加以下内容: /…

PCB基础介绍

一,单层板: 1,铜皮 和导线类似,提供电路板上的电信号传导路径。 因为铜具有良好的导热性能,因此铜皮还可以用于散热。在高功率电子设备中,通过在PCB上增加铜皮面积和散热片,可以提高散热效果…

【洛谷题解】 P6995 [NEERC2014] Knockout Racing

分析 按照题意模拟即可。 我们只需要依次找到第 i i i( 1 ≤ i ≤ N 1\le i\le N 1≤i≤N)辆车在 t j t_j tj​ 时刻时所在的位置,看这个位置是不是在区间 [ x j , y j ] [x_j,y_j] [xj​,yj​] 之中,如果是,答案…

数字晶体管数字三极管

数字晶体管 指内部集成了电阻的三极管,有PNP和NPN型,也有双管,双管有3种形式,其中一种是PNPNPN。下面以双NPN示例,好处是外面没有电阻,批量应用时,焊点费用就可省下不少。双NPN的用在串口自动下…

Flutter知识点 --- key

Flutter 中的 Key 对象在Widget树的构建、更新和状态管理中扮演着重要角色。它主要用于帮助Flutter框架在Widget树发生变动时正确地识别和保留Widget的对应关系,以及在某些情况下维护状态。下面是Key的作用与原理的详细阐述: Key的作用 标识Widget的唯一…

开源相机管理库Aravis例程学习(二)——连续采集multiple-acquisition-main-thread

开源相机管理库Aravis例程学习(二)——连续采集multiple-acquisition-main-thread 简介例程代码函数说明arv_camera_set_acquisition_modearv_camera_create_streamarv_camera_get_payloadarv_buffer_newarv_stream_push_bufferarv_camera_start_acquisi…

目标检测YOLO实战应用案例100讲-基于轻量化神经网络的目标检测算法研究与应用(续)

目录 轻量化目标检测模型的参数量化 4.1引言 4.2模型量化的原理及过程 4.3实验结果及分析

如何看待2023年图灵奖

目录 1.概述 2.计算复杂性理论 3.随机性和伪随机性 4.学术生涯和领导力 1.概述 图灵奖(Turing Award),全称A.M.图灵奖(ACM A.M Turing Award),是由计算机领域的最高学术机构——美国计算机协会&#xf…

ElasticSearch 集群添加用户安全认证功能(设置访问密码)

前言 在6.8之前免费版本并不包含安全认证功能,之后版本有开放一些基础认证功能;为了防止各种事故,一般都会设置es集群的访问密码;但是在我尝试设置访问密码的时候发现,设置访问密码的前提必须要设置集群证书&#xff0…

java:多线程

多线程 在java程序中同时执行多个线程,每个线程独立执行不同的任务. 可以提高程序的性能和资源利用率,增加程序的并发性. 多线程的作用 1,提高程序性能 可以将一个任务分解成多个子任务并行处理,从而提高程序的运行速度 2,提高资源利用率 可以更好地利用CPU资源,提高CPU…

如何实现Windows RDP 远程桌面异地跨网连接

Windows RDP远程桌面的应用非常广泛。远程桌面协议(RDP)是一个多通道(multi-channel)的协议,让使用者(所在计算机称为用户端或本地计算机)连上提供微软终端机服务的计算机(称为服务端或远程计算机)。大部分的Windows版本都有用户端所需软件,有些其他操作…

Python Flask Web 框架-API接口开发_4

一、1、安装 Falsk 当前用户安装 pip3 install --user Flask 确认安装成功: 进入python交互模式看下Flask的介绍和版本: $ python3>>> import flask >>> print(flask.__doc__)flask~~~~~A microframework based on Werkzeug. Its …

病毒繁殖-第12届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第52讲。 病毒繁殖&#xf…

Linux userdel命令教程:如何删除用户账户及其相关文件(附实例详解和注意事项)

Linux userdel命令介绍 userdel命令在Linux系统中用于删除用户账户及其相关文件。这个命令主要修改系统账户文件,删除所有引用到用户名的条目。 Linux userdel命令适用的Linux版本 userdel命令在大多数Linux发行版中都可以使用,包括但不限于Debian、U…

数据结构与算法——23.哈希冲突及其解决方法

这篇文章我们主要讲一下哈希冲突及其解决方法。 目录 1.哈希冲突的介绍 2.解决哈希冲突的方法 2.1 开放地址法 2.1.1 线性探测法 2.1.2 平方探测法(二次探测法) 2.2再哈希法 2.3链地址法 2.4建立公共溢出区 3.总结 1.哈希冲突的介绍 首先&…

静态路由

路由器主要功能是确定发送数据包的最佳路径以及将数据包从一个网络传送到另一个网络。路由是所有数据网络的核心所在,它通过搜索存储在路由表中的路由信息将数据包从源传送到目的地,所以说路由表是路由器工作的核心。路由器构建路由表的方式通常有3种:直…

vue快速入门(二十五)本地存储与初始化使用

注释很详细&#xff0c;直接上代码 上一篇 新增内容 本地获取数据数据存储到本地 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial…

【浪漫 罗盘时钟 Js、css实现(附源代码) 美化版本】,前端面试必问的HashMap

先自我介绍一下&#xff0c;小编浙江大学毕业&#xff0c;去过华为、字节跳动等大厂&#xff0c;目前阿里P7 深知大多数程序员&#xff0c;想要提升技能&#xff0c;往往是自己摸索成长&#xff0c;但自己不成体系的自学效果低效又漫长&#xff0c;而且极易碰到天花板技术停滞…