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基础语法(运算符)的更多相关文章

  1. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  2. Java10-java语法基础(九)——java的封装性

    Java10-java语法基础(九)——java的封装性 一.Java的三大特性:封装.多态.继承 封装:通过类封装对象的数据成员和成员方法,保证只有可信的类或者对象能够访问这些方法和数据成员,对不可 ...

  3. Java09-java语法基础(八)java中的方法

    Java09-java语法基础(八)java中的方法 一.方法(函数/过程):是一个程序块,可以完成某种功能 1.java中方法的定义格式 [访问控制修饰符]  返回值类型  方法名(参数列表){ 方 ...

  4. 《Java程序设计》第三章-基础语法

    20145221<Java程序设计>第三章-基础语法 总结 教材学习内容总结 类型.变量与运算符 类型 Java可区分为基本类型(Primitive Type)和类类型(Class Typ ...

  5. JavaSE基础(三)--Java基础语法

    Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...

  6. 008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字

    008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字 关键字 关键字就是一些有特殊意义的词 之前学习的程序中涉及到的关键字 Java中 ...

  7. 007 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 01 Java标识符

    007 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 01 Java标识符 Java变量与常量主要内容 Java变量与常量主要内容如下,主要是对以下内容的学习,没 ...

  8. JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  9. Java基础学习笔记三 Java基础语法

    Scanner类 Scanner类属于引用数据类型,先了解下引用数据类型. 引用数据类型的使用 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式. 数据类型 变量名 ...

  10. java 复习整理(一 java简介和基础语法)

    现在公司用的是封装太多东西的平台开发,觉着之前学的东西很多都忘了,所以想好好总结回顾一下.之前总是想学很多编程语言像python.s6.node.react,但现在越来越体会到编程语言只是一个开发的工 ...

随机推荐

  1. 更改DataFrame列顺序

    使用pandas进行数据分析的时候,有时会由于各种需求添加了一些列.可是列的顺序并不能符合自己的期望.这个时候就需要对于列的顺序进行调整. import numpy as np import pand ...

  2. Django系列---开发一

    参考 杜赛: https://www.dusaiphoto.com/article/2/ 官方文档: https://docs.djangoproject.com/en/3.2/ 开发环境 # 基本 ...

  3. 用于数据科学的顶级 C/C++ 机器学习库整理

    用于数据科学的顶级 C/C++ 机器学习库整理 介绍和动机--为什么选择 C++ C++ 非常适合 动态负载平衡. 自适应缓存以及开发大型大数据框架 和库.Google 的MapReduce.Mong ...

  4. go工具pprof部署

    在做内存分析时,用到了pprof,这里做一下部署介绍和入门级别的使用. pprof是golang的性能工具,有两种交互方式:命令行交互和web交互,同时还支持性能分析数据的图形化展示. 部署pprof ...

  5. ubuntu上升级cmake到3.16版本

    本来cmake的旧版本是2.8.12.2,现在更新到3.16.0版本. 需要文件:cmake 3.16.0压缩包,在附件. 1.  查看cmake版本:cmake --version 2.  解压cm ...

  6. phpexcel 小技巧

    //设置填充的样式和背景色$objPHPExcel->getActiveSheet()->getStyle( 'A1:AU1')->getFill()->setFillType ...

  7. (C++) 笔记 C++11 std::mutex std::condition_variable 的使用

    #include <atomic> #include <chrono> #include <condition_variable> #include <ios ...

  8. 06#Web 实战:实现可滑动的标签页

    实现效果图 本随笔只是记录一下大概的实现思路,如果感兴趣的小伙伴可以通过代码和本随笔的说明去理解实现过程.我的 Gitee 和 GitHub 地址.注意哦:这个只是 PC 上的标签页,手机端的没用,因 ...

  9. GO开发工具litelDE的安装与使用

    1.MinGW的下载与安装 地址:http://sourceforge.net/projects/mingw/ 下载安装 D:\Program Files\MinGW 然后打开D:\Program F ...

  10. Windows server 2008 tomcat间歇性掉线关闭

    1.代码没有问题,已经正常运行一年. 2.近期无更新代码. 3.tomcat 无运行报错. 今天突然间歇性掉线次数很多,客户不停反应情况,这边一时从代码开始找,我问了下在场运维其他服务器系统有无此现象 ...