Java基础1-1-2—java基础语法(运算符)
2、 运算符
2.1 算术运算符
运算符和表达式
运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
举例说明:
int a = 10;
int b = 20;
int c = a + b;
+:是运算符,并且是算术运算符
a+b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式

/:整数相除,结果只能得到整数,如果想要得到带有小数的结果,必须加入小数(浮点类型)的运算
%(取模)取余数
注意事项:
/和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
2.2 字符的“+”操作
字符的“+”操作
public class Test{
public static void main(String[] args){
int a = 1;
char b = 'a';
System.out.println(a + b); //98
}
}
a + b的运算中,a为int类型,b为char类型
当(byte short char int)在一起运算的时候,都会提升为int之后,再进行运算
但是,char属于字符,字符是怎样提升为int数值的呢?

为什么要有这样的码表?

'a' --- 97 'A' --- 65 '0' --- 48

2.3 字符串的+操作
字符串的“+”操作
当+操作中出现字符串时,这个+是{字符串连接符},而不是算术运算。
在+操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行"+"操作时,从左到右逐个执行。
public static void main(String[] args){
// 字符串可以使用 + 号,跟【任意数据类型】拼接
System.out.println("qwer" + 666);
System.out.println("qwer" + true);
//从左到右
System.out.println(1 + 99 + "年");
System.out.println("5+5=" + 5 + 5); //已经变成字符串拼接了 最后就是5+5=55
System.out.println("5+5=" + (5 + 5)); //提高运算优先级
}
2.4 案例-数值拆分
需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

public class Test{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int num = sc.nextInt();
int ge = num % 10;
int shi = num / 10 % 10;
int bai = num / 100;
System.out.println("整数"+num+"个位为:" + ge);
System.out.println("整数"+num+"十位为:" + shi);
System.out.println("整数"+num+"百位为:" + bai);
}
}
公式总结:
个位:数值 % 10
十位:数值 / 10 % 10
百位:数值 / 10 /10 % 10
千位:数值 / 10 / 10 / 10 % 10
2.5 自增自减运算符
自增自减运算符
++:变量自身+1
--:变量自身-1
++和--既可以放在变量的后边,也可以放在变量的前面。
注意:单独使用的时候,++和--无论是放在变量的前边还是后边,结果是一样的
public static void main(String[] args){
int a = 10;
++a;
a++;
}
参与操作:
++在前:先对该变量做自增(++)或者自减(--),然后再拿变量参与操作。
++在后:先将该变量原本的值,取出来参与操作,随后再进行自增(++),自减(--)。
++和--,只能操作变量不能操作常量
System.out.println(10++); //错误
2.6 赋值运算符
赋值运算符

注意事项:
扩展的赋值运算符隐含了强制类型转换
扩展赋值运算符:
+= -= *= /= %=
public static void main(String[] args){
int a = 10;
a += 20; //将符号左右两边的数据,做加分运算,结果赋值给左边
System.out.println(a);
}
注意:
public static void main(String[] args){
short a = 1;
a += 1; // a = (short)(a + 1); 注意:扩展赋值运算符底层会自带强转功能
System.out.println(a);
}
2.7 关系运算符
关系运算符(比较运算符)
> >= < <= == !=
public static void main(String[] args){
System.out.println(10 > 20); //false
}

2.8 逻辑运算符
逻辑运算符概述
在数学中,一个数据x,大于5,小于15,我们可以这样来进行表示:5<x<15。
在java中,需要把上面的式子先进行拆解,再进行合并表达。
拆解为:x>5和x<15
合并后:x>5&x<15
逻辑运算符作用:用于{整合}多个比较表达式的条件
1、连接多个比较表达式
2、连接true或false
最终得到的结果都是boolean类型的true或false
逻辑运算符分类:
&(与):并且 遇false则false,只有符号左右两边同时为true,结果才为true。
|(或):或者 遇true则true,只有符号左边两边同时为false,结果才为false。
!(非):取反 !false=true !!true=true
^(异或):相同为false,不同为true
应用场景:
需求:键盘录入学生成绩,如果是90-100之间,程序输出(优秀)
判断条件(score >= 90 & score <= 100)
需求:键盘录入工人工号,只要3号5号7号。
public static void main(String[] args){
int x = 10;
System.out.println(x > 5 & x < 15);
}
&其实就是一个逻辑运算符
我们可以这样说,逻辑运算符,是用来连接关系表达式的运算符。
当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。

2.9 短路逻辑运算符
短路逻辑运算符

& 和 &&的区别:
&无论符号左边是true还是false,右边都要继续执行
&&具有短路效果,符号左边为false的时候,右边就不执行了。
|和||的区别:
逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
2.10 三元运算符
三元运算符
格式:关系表达式?表达式1:表达式2;
执行流程:
首先计算关系表达式的值
如果值为true,取表达式1的值
如果值为false,取表达式2的值
public static void main(String[] args){
int a = 10;
int b = 20;
int max = a > b ? a : b;
System.out.println(max);
}
2.11 案例:三个和尚
需求:一座寺庙里住着三个和尚,已知他们的升高分别为150cm、210cm、165cm。请用程序实现获取三个和尚的最高升高。

public static void main(String[] args){
int height1 = 150;
int height2 = 210;
int height3 = 165;
int tempMax = a > b ? a : b;
int max = tempMax > c ? tempMax : c;
System.out.println(max);
int result = a > b ? a : b > c ? a > b ? a : b : c;
System.out.println(result);
}
Java基础1-1-2—java基础语法(运算符)的更多相关文章
- java面向对象编程——第二章 java基础语法
第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...
- Java10-java语法基础(九)——java的封装性
Java10-java语法基础(九)——java的封装性 一.Java的三大特性:封装.多态.继承 封装:通过类封装对象的数据成员和成员方法,保证只有可信的类或者对象能够访问这些方法和数据成员,对不可 ...
- Java09-java语法基础(八)java中的方法
Java09-java语法基础(八)java中的方法 一.方法(函数/过程):是一个程序块,可以完成某种功能 1.java中方法的定义格式 [访问控制修饰符] 返回值类型 方法名(参数列表){ 方 ...
- 《Java程序设计》第三章-基础语法
20145221<Java程序设计>第三章-基础语法 总结 教材学习内容总结 类型.变量与运算符 类型 Java可区分为基本类型(Primitive Type)和类类型(Class Typ ...
- JavaSE基础(三)--Java基础语法
Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...
- 008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字
008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字 关键字 关键字就是一些有特殊意义的词 之前学习的程序中涉及到的关键字 Java中 ...
- 007 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 01 Java标识符
007 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 01 Java标识符 Java变量与常量主要内容 Java变量与常量主要内容如下,主要是对以下内容的学习,没 ...
- JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- Java基础学习笔记三 Java基础语法
Scanner类 Scanner类属于引用数据类型,先了解下引用数据类型. 引用数据类型的使用 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式. 数据类型 变量名 ...
- java 复习整理(一 java简介和基础语法)
现在公司用的是封装太多东西的平台开发,觉着之前学的东西很多都忘了,所以想好好总结回顾一下.之前总是想学很多编程语言像python.s6.node.react,但现在越来越体会到编程语言只是一个开发的工 ...
随机推荐
- shell脚本之一键部署openV~P~N
提前准备:/root目录下: checkpsw.sh ## 官方提供的自定义脚本,可在http://openvpn.se/files/other/checkpsw.sh下载 openvpn@.serv ...
- Python基础之函数:5、内置函数、迭代器对象、异常的捕获和处理
目录 一.重要内置函数 1.zip() 2.filter() 3.sorted() 二.常见内置函数 1. abs() 2.all.any() 3.bin.oct.hex.int() 4.bytes( ...
- 状态估计和KalmanFilter公式的推导与应用
状态估计的概率解释 运动和观测方程: \[\left\lbrace \begin{array}{l} x_k = f(x_{k_1}, u_k) + w_k \\ z_k = h(y_j, x_k) ...
- 镜像制作工具diskimage-builder介绍
简介 diskimage-builder(简称dib)是一款用于构建系统镜像的工具,它被设计用于OpenStack的TripleO项目,支持qocw2.vhd.raw等主流镜像格式. 在众多系统镜像构 ...
- 如何理解Java中眼花缭乱的各种并发锁?
在互联网公司面试中,很多小伙伴都被问到过关于锁的问题. 今天,我给大家一次性把Java并发锁的全家桶彻底讲明白.包括互斥锁.读写锁.重入锁.公平锁.悲观锁.自旋锁.偏向锁等等等等.视频有点长,大家一定 ...
- 使用vite + vue3 + ant-design-vue + vue-router + vuex 创建一个管理应用
使用vite + vue3 + ant-design-vue + vue-router + vuex 创建一个管理应用的记录 使用vite 创建项目 我创建的node 版本是 v16.17.1 使用N ...
- WeetCode2滑动窗口系列
系列文章目录和关于我 一丶[无重复字符的最长子串](3. 无重复字符的最长子串 - 力扣(Leetcode)) 思路: 维护一个窗口,窗口中不存在重复的字符,窗口右边界从第一个字符移动到最后,使用一个 ...
- .net如何优雅的使用EFCore
EFCore是微软官方的一款ORM框架,主要是用于实体和数据库对象之间的操作.功能非常强大,在老版本的时候叫做EF,后来.net core问世,EFCore也随之问世. 本文我们将用一个控制台项目Ho ...
- bug处理记录:Error running 'WorkflowApplication': Command line is too long. Shorten command line for WorkflowApplication or also for Spring Boot default configuration?
1.报错信息 Error running 'WorkflowApplication': Command line is too long. Shorten command line for Workf ...
- MySQL 性能压测工具-sysbench,从入门到自定义测试项
sysbench是一个开源的.基于LuaJIT(LuaJIT 是 Lua 的即时编译器,可将代码直接翻译成机器码,性能比原生 lua 要高) 的.可自定义脚本的多线程基准测试工具,也是目前用得最多的 ...