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. Spark基本知识

    Spark基本知识 Spark 是一种基于内存的快速.通用.可扩展的大数据分析计算引擎. spark与hadoop的区别 Hadoop Hadoop 是由 java 语言编写的,在分布式服务器集群上存 ...

  2. 【Zulip】邮件系统配置

    通过docker-compose(docker-zulip)部署Zulip实例时需要配置邮件系统 SETTING_ZULIP_ADMINISTRATOR: '...@qq.com' SETTING_E ...

  3. 篇(18)-Asp.Net Core入门实战-文章管理之文章内容管理(下拉框二级结构递归)

    篇(18)-Asp.Net Core入门实战-文章管理之文章内容管理(下拉框二级结构递归实现) 文章管理是CMS系统的核心表之一,存储文章内容,特点就是字段端,属性多,比如是否标识为热点.推荐等属性, ...

  4. PEP8语法规范解释说明

    PEP8规范解析 内容概要: 1.PEP8规范是什么? 2.PEP8相关内容 1.PEP8规范是什么 PEP是Python Enhancement Proposal的缩写,翻译为:"Pyth ...

  5. LayuI 动态下拉框和动态设置选中

    动态下拉框 //下拉框异步加载 function asyncSelect(thisId, grade, selectNodeName) { $("#" + selectNodeNa ...

  6. 如何禁止win7自动锁屏

    前言 我是真的服了,就解决这个问题百度查了一大堆(浪费很长时间),都说是电源管理的问题,也不知道是谁抄谁的,改完还会自动锁屏. 然后我google一下子就解决了(这里有一个搜索技巧,就是将你的问题翻译 ...

  7. POST请求发送的表单数据和json数据的区别及python代码实现

    前言 这篇博客会介绍最常见post 请求form表单数据和json数据 数据类型之间的区别, urllib代码的实现(python), requests库实现, 以及如何使用postman软件发送这些 ...

  8. Forest + IDEA = 双倍快乐!ForestX 隆重登场

    Forest + IDEA = 双倍快乐!ForestX 隆重登场 Forest 是一款声明式的 Java 开源 HTTP 框架,相比它的前辈 Httpclient 和 OkHttp 更简明易懂.也更 ...

  9. Mysql安装失败-GPG验证不通过或Failed to start mariadb.service: Unit not fou

    1.报错原因 报错原文 Key imported successfully Import of key(s) didn't help, wrong key(s)? Public key for mys ...

  10. 静态文件配置,django连接MySQL,ORM基本操作

    静态文件 什么是静态文件 静态文件是不怎么经常变化的文件,主要针对html文件所使用的到的各种资源. css文件.js文件.img文件.第三方框架文件 django针对静态文件资源需要单独开始一个目录 ...