【Java】(4)五种运算符的说明(&&、||、>=、>、<=、<)、4种控制语句(if、for、while、dowhile)、输入和输出说明

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 扩展类的赋值运算符不改变运算结果类型,假设最初这个变量的的类型byte类型,无论怎么进行加或追减,最终该变量的数据类型还是byte类型。注:一个表达式中有多个运算符,运算符有优先级,不确定的加小括号,优先级得到提升。当布尔表达式的结果是false的时候,选择表达式2作为整个表达式的执行结果。当布尔表达式的结果是true的时候,选择表达式1作为整个表达式的执行结果。当用户输入的时候,并且最终敲回车键的时候,键入的信息会自动赋值给a。并且,连接运算之后的结果还是一个字符串类型。表达式1 : 表达式2。

1. 关于运算符:

  • 算术运算符
  • 逻辑运算符
  • 布尔运算符
  • 位运算符
  • 赋值类运算符
  • 字符串连接运算符
  • 条件运算符
  • 其他运算符

1.1 算术运算符:

  • 对应类arithmetic

关于算术运算符:

符号 说明
+ 相加
- 相减
* 相乘
/ 相除
% 求余
++ 自加一
自减一

注:一个表达式中有多个运算符,运算符有优先级,不确定的加小括号,优先级得到提升。没有必要专门去记忆运算符的优先级;

关于++运算

  • 自加一
// ++运算符可以使用在变量上
int c = 10;
c++;// 自加1
System.out.println(c);
++运算符可以出现在变量前,也可以出现在变量后,无论是变量前还是变量后
只要++运算结束,该变量的一定会自加1
int d = 10;
++d;// 自加1 
System.out.println(d);

1.2 逻辑运算符:

  • 对应类logic

关于逻辑运算符:

符号 说明 阐述
& 与【并且】 两边的算式都是true,结果才是true
| 或【或者】 两边的算式只要有一个是true,结果才是true
! 取反,!false就是true,这是一个单目运算符
^ 异或 两边的算子只要不一样,结果就是true
&& 短路与
|| 短路或
  • 逻辑运算符要求两边的算式都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型
  • 短路与和与最终的运算结果是相同的,只不过短路与存在短路现象。
  • 短路或和或最终的运算结果是相同的,只不过短路或存在短路现象。

什么情况下发生短路与&&?

  • 第一个表达式执行结果是true,会发生短路或。
    什么情况下发生短路或||
  • 第一个表达式执行结果是false,会发生短路与。

1.3 关系运算符:

  • 对应类Theboolean
    关于关系运算符:
符号 说明
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于

= 是赋值运算符

== 是关系运算符

关系运算符的运算结果一定是布尔类型:true/false

1.4 赋值类运算符:

  • 对应类AssignmentClass

关于java中的赋值类运算符:

  • 基本的赋值运算符:" = "
  • 扩展的赋值运算符:
    " += "
    " -= "
    " *= "
    " /= "
    " %= "
  • 赋值类的运算符优先级:先执行等号右边的表达式,将执行结果赋值给左边的变量
  • 扩展的赋值运算符【+= 运算符可以翻译位“追加/累加”】
  • x = (byte)(x + ?);

扩展类的赋值运算符不改变运算结果类型,假设最初这个变量的的类型byte类型,无论怎么进行加或追减,最终该变量的数据类型还是byte类型。

1.5 字符串连接运算符:

  • 对应类StringConnection

关于java中的“+”运算符:

+ 在java中有两个作用:

  • 加法运算,求和
  • 字符串的连接运算

当“+”运算符两边的数据都是数字的话,一定是加法运算;

当“+”运算符两边只要有一个是字符串,一定会进行字符串连接运算。

并且,连接运算之后的结果还是一个字符串类型。

1.6 三元运算符:对应类Conditions

  • 三元运算符/三目运算符/条件运算符,这里都是指的一个东西喔!

语法规则:

  • 布尔表达式 ? 表达式1 : 表达式2
  • 三元运算符的执行原理?
    当布尔表达式的结果是true的时候,选择表达式1作为整个表达式的执行结果
    当布尔表达式的结果是false的时候,选择表达式2作为整个表达式的执行结果

三元运算符仅仅只是一个运算符,并不是一个完整的语句

sex ? '男' : '女'; ----> 编译报错

1.6.1 例子:

String name = "James";
boolean result = name instanceof String; // true

由于 name 是 String 类型,所以返回真

如果被比较的对象兼容于右侧类型,该运算符仍然返回true。

2. 控制语句

2.1 if

关于java中的if控制选择结构语句:

重点:

  • 对于if语句来说,只要有一个分支执行,整个if语句全部结束

所有的控制语句 都是可以嵌套使用的,只要合理都行;

注:嵌套使用时,代码格式要保证完美。

  • if语句的分支中只有一条语句的话,大括号可以省略不写。
if(true/false) 执行语句;

2.2 for

for(int i =起始值; i< 循环次数; i++;){
};

for循环在表达式内部就声明了一个变量,它会根据这个变量次数来决定循环的次数

2.3 doWhile

do…while循环的语法结构:

do{
}while(布尔表达式);

do…while循环的执行原理:

  1. 先执行do代码块里面的代码
  2. 执行完do代码块后进行布尔表达式判断
  3. 判断为true则继续循环,false则结束循环

2.4 while

while(布尔表达式){
};

与doWhile不同,while循环会先进行判断,再进入代码块中执行

请记住,一定要给一个结束条件,不然会造成死循环

3. 输入和输出:

System.out.println(); 负责向控制台输出

  • 从内存倒控制台,输出的过程,这是从内存中出来的
  • 需要用户输入数值的代码及代码逻辑:

3.1 创建扫描器对象

java.util.Scanner s = new java.util.Scanner(System.in);

3.2 接收键盘输入

调用Scanner对象的next()方法开始接收用户键盘输入

String a = s.next();// 程序执行到这里会停下来,等待用户的输入

当用户输入的时候,并且最终敲回车键的时候,键入的信息会自动赋值给a

System.out.println("用户输入了:"+a);

4. ❤️Java基础专栏 - 前篇回顾

5. 💕👉 其他好文推荐

目录
相关文章
|
21小时前
|
设计模式 缓存 安全
【JUC】(5)带你研究共享模型通过无锁的方式解决并发问题!本文分析对原子对象的使用!
带你研究共享模型通过无锁的方式来解决并发问题 带你一起分析原子对象使用! 内容包含:Atomic相关类、Unsafe的挖掘使用
21 3
|
21小时前
|
JSON Java Go
【GoGin】(2)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将,以方便后续业务逻辑的处理。
25 3
|
21小时前
|
设计模式 消息中间件 安全
【JUC】(3)常见的设计模式概念分析与多把锁使用场景!!理解线程状态转换条件!带你深入JUC!!文章全程笔记干货!!
JUC专栏第三篇,带你继续深入JUC! 本篇文章涵盖内容:保护性暂停、生产者与消费者、Park&unPark、线程转换条件、多把锁情况分析、可重入锁、顺序控制 笔记共享!!文章全程干货!
20 1
|
21小时前
|
存储 JavaScript Java
【Golang】(2)变量与常量?字面量与变量的较量!
本文带你了解Go语言中的变量与常量! 并且在变量中如何进行强制转换类型!
20 5
|
21小时前
|
存储 安全 Java
【JUC】(2)共享问题解决与synchronized对象锁分析!全程干货!!快快收藏!!
本章内容将深入JUC研究并行并发问题; 涵盖内容:锁、轻量锁、对象锁、Monitor监控、等待与唤醒... 如果你也想在Java上更进一步!那么本篇文章将是你必看文章之一!
21 3
|
21小时前
|
Java 测试技术 API
【JUC】(1)带你重新认识进程与线程!!让你深层次了解线程运行的睡眠与打断!!
JUC是什么?你可以说它就是研究Java方面的并发过程。本篇是JUC专栏的第一章!带你了解并行与并发、线程与程序、线程的启动与休眠、打断和等待!全是干货!快快快!
26 2
|
21小时前
|
Java 编译器 Go
【Golang】(1)Go的运行流程步骤与包的概念
初次上手Go语言!先来了解它的运行流程吧! 在Go中对包的概念又有怎样不同的见解呢?
22 4
|
21小时前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
16 1
|
21小时前
|
Java Go 开发工具
【Java】(9)抽象类、接口、内部的运用与作用分析,枚举类型的使用
抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽象方法不能有方法体。抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。抽象类可以包含成员变量、方法(普通方法和抽象方法都可以)、构造器、初始化块、内部类(接 口、枚举)5种成分。抽象类的构造器不能用于创建实例,主要是用于被其子类调用。抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类abstract static不能同时修饰一个方法。
22 0
|
21小时前
|
Java 测试技术 数据库连接
【SpringBoot(四)】还不懂文件上传?JUnit使用?本文带你了解SpringBoot的文件上传、异常处理、组件注入等知识!并且带你领悟JUnit单元测试的使用!
Spring专栏第四章,本文带你上手 SpringBoot 的文件上传、异常处理、组件注入等功能 并且为你演示Junit5的基础上手体验
44 2

热门文章

最新文章