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. day08-XML

    XML 官方文档:https://www.w3school.com.cn/xml/index.asp 1.为什么需要xml? 需求1:两个程序间进行数据通信? 需求2:给一台服务器,做一个配置文件,当 ...

  2. kubernetes之kubectl与YAML详解1

    k8s集群的日志,带有组件的信息,多看日志. kubectl命令汇总 kubectl命令汇总 kubectl命令帮助信息 [root@mcwk8s04 ~]# kubectl -h kubectl c ...

  3. Linux系统部署Jenkins

    搭建Jenkins,准备搞一个定时任务来自动部署服务.做个记录. 问题写在前头:①建议使用最新版的Jenkins版本,jdk版本要跟Jenkins版本对应(有要求):②最好使用war包部署Jenkin ...

  4. Java读取txt文件、excel文件的方法

    Java读取txt文件.excel文件的方法 1.读取txt文件 public static String getFileContent(String filePath,String charset) ...

  5. 嵌入式-c语言基础:冒泡排序实现从大到小排列

    #include<stdio.h> int main() { /*冒泡排序:从大到小*/ /*i=0 第1轮(i+1):需要比较9次(sizeArr-i-1)*/ /*i=1 第2轮(i+ ...

  6. Perl读取Excel中的数据

    #!usr/bin/perl -W use strict; use Spreadsheet::ParseExcel;#PERL的Spreadsheet::ParseExcel模块支持Excel的读操作 ...

  7. Linux系统安装 tftp服务 NFS服务

    安装tftp服务 安装 sudo apt-get install tftp-hpa tftpd-hpa 配置文件 # /etc/default/tftpd-hpa TFTP_USERNAME=&quo ...

  8. CodeGeeX:vscode中全新的智能代码补全插件

    大家好我是费老师,代码智能补全是近几年非常热门的话题,有前不久宣告项目终结的kite,反响平平的tabnine,以及最近吃了一堆官司的copilot. 而广大从事编程工作的用户只关心市面上的代码智能补 ...

  9. 英格索兰扳手网口通信协议EOR原理

    前言 前几天遇到这个需求,需要记录扳手每一次的周期数据,但是我不知道通信协议是什么,只知道是一个tcp的连接,问售后,也不给我网口调试软件(英格索兰自己家的软件).经过我俩天的谷歌,终于找到了他们公司 ...

  10. Google Chrome(谷歌浏览器)安装使用

    谷歌浏览器官网https://www.google.cn/chrome/ Chrome是由Google开发的一款简单便捷的网页浏览工具.谷歌浏览器(Google Chrome)可以提帮助你快速.安全的 ...