运算符操作 【算数运算符(四则、自增自减、赋值)、比较运算符、逻辑运算符、三元运算符】 JAVA代码演示

本文主要是介绍运算符操作 【算数运算符(四则、自增自减、赋值)、比较运算符、逻辑运算符、三元运算符】 JAVA代码演示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

运算符就是一些特定操作的符号,用运算符连起来的式子就叫表达式


四则运算

加:+
减:-
乘:*
除:/
取模(取余数):%

代码演示:

public class Demo04Operator {public static void main(String[] args) {// 俩个常量之间可以进行数学运算System.out.println(20 + 30);	// 50// 俩个变量之间可以进行数学运算int a = 20;int b = 5;System.out.println(a - b);	// 15// 变量和常量可以混合使用System.out.println(a * 10);	// 200int x = 10;int y = 3;System.out.println(x / y);	// 3System.out.println(x % y);	// 1// 一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。// double + int --> double + double --> doubledouble result1 = x + 2.5;System.out.println(result1);	// 12.5}
}

注意事项:一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。 如上举例


在四则运算中存在优先级问题,一般来说常见的依旧是先乘除后加减,优先运算小括号中的。但是为了方便其实小括号可以解决所有优先级问题!!


加号的多种用途

四则运算中的加法“+”有常见的三种用法:
1.对于数值来说,就是加法。
2.对于字符char类型来说,在计算之前,char会被提升为int,然后计算。 char类型字符和int类型数字之间的对照关系:ASCII码表和Unicode码表。
3.对于字符串String(首字母大写,并不是关键字)来说,加号代表字符的拼接。

注意:任何数据类型和字符类型进行加号连接的时候,结果都是字符串!!!

代码演示:

public class Demo05Plus {public static void main(String[] args) {// 字符串类型的变量基本使用// 数据类型 变量名称 = 数据值;String str1 = "Hello";System.out.println(str1);	// HelloSystem.out.println("Hello" + " World");	// Hello WorldString str2 = "Java";// String + int --> StringSystem.out.println(str2 + 20);	// Java20// 优先级问题// String + int + int --> String + int --> StringSystem.out.println(str2 + 20 + 30);	// Java2030System.out.println(str2 + (20 + 30));	// Java50}
}


自增自减运算

自增运算符(双加号):++
自减运算符(双减号):–

++ 和 – 的用法一样!!!!


基本含义:

让一个变量涨一个数字1,或者让一个变量降一个数字1
使用格式:写在变量名称之前,或者写在变量名称之后。
例如:++num或者num++


使用方式:

1.单独使用:不和其它任何操作混合,自己独立成为一个步骤。
2.混合使用:和其它操作混合,例如与赋值混合,或者与打印操作混合,等。


使用区别:

1.在单独使用时,前++和后++无任何区别。也就是说++num与num++完全一样。
2.在混合使用时,有 【重大区别】
(1)如果是前++,那么变量立刻马上+1,然后拿着结果去使用。 【先加后用】
(2)如果是后++,那么首先使用变量本来的数值,然后再让变量+1。【先用后加】

注意事项:
只有变量才可以使用自增自减运算符,常量不可变,所以不能用。 例如错误写发:30++

对于上述内容进行代码举例演示:

public class Demo06Operator {public static void main(String[] args) {int num1 = 10;System.out.println(num1);	// 10++num1;	// 单独使用,前++System.out.println(num1);	// 11num1++;	// 单独使用,后++System.out.println(num1);	// 12// 与打印操作混合d的时候int num2 = 20;// 混合使用,先++,变量立刻+1,然后打印结果是21System.out.println(++num2);	// 21System.out.println(num2);	// 21int num3 = 30;// 混合使用,后++,首先使用变量本来的30,然后再让变量+1得到31System.out.println(num3++);	// 30System.out.println(num3);	// 31int num4 = 40;// 和赋值操作混合int result1 = --num4;	// 混合使用,先--,立刻马上变成39,然后将39交给变量result1System.out.println(result1);	// 39System.out.println(num4);	// 39int num5 = 50;int result2 = num5--;System.out.println(result2);	// 50System.out.println(num5);	// 49int x = 10;int y = 20;// 这里x先+1,所以是11,而y先使用的是20,而后-1,所以是19int result3 = ++x + y--;System.out.println(result3);	// 31System.out.println(x);	// 11System.out.println(y);	// 19}
}


赋值运算符

赋值运算符分为俩种:

1.基本赋值运算符

=
代表将右侧的数据交给左侧的变量。
例如:int a = 30;

2.复合赋值运算符

符号举例等同于
+=a += 1a = a + 1
-=a -= 2a = a - 2
*=a * = 3a = a * 3
/=a /= 4a = a / 4
%=a %= 5a = a % 5

注意事项:
1.只有变量才可以使用赋值运算符,常量不可以
2.复合赋值运算符其中隐含了一个强制类型转换。不需要你自己进行数据类型转换,编译器帮你搞定!

JAVA数据类型转换

代码演示:

public class Demo07Opertor {public static void main(String[] args) {int a = 10;// 按照复合赋值公式进行翻译:a = a + 5// a = 10 + 5;// a = 15;// a本来是10,现在重新赋值得到15a += 5;System.out.println(a);	// 15int x = 10;// x = x % 3;// x = 10 % 3;// x = 1;// x本来就是10,现在重新赋值得到1x %= 3;System.out.println(x);	// 1byte num = 30;// num = num + 5;// num = byte + int// num = int + int// num = int// byte --> intnum += 5;System.out.println(num);	// 35}
}


比较运算符

比较运算符含义
==比较符号俩遍数据是否相等,相等结果是true
<比较符号左边的数据是否小于右边的数据,如果小于结果是true
>比较符号左边的数据是否大于右边的数据,如果大于结果是true
<=比较符号左边的数据是否小于等于右边的数据,如果小于等于,结果为true
>=比较符号左边的数据是否大于等于右边的数据,如果大于等于,结果为true
!=如果符号俩边的数据不相等,结果为true

注意事项:
1.比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
2.如果进行多次判断,不能连着写。
数学当中的写发,例如:1 < x < 3 在程序当中就是错误写法

代码演示:

public class Demo08Opertor {public static void main(String[] args) {System.out.println(100 > 99);	// trueint num1 = 10;int num2 = 12;System.out.println(num1 < num2);	// trueSystem.out.println(num2 >= 100);	// falseSystem.out.println(num2 <= 100);		// falseSystem.out.println(num2 <= 12);		// trueSystem.out.println(10 == 10);	// trueSystem.out.println(20 != 25);	// trueSystem.out.println(20 != 20);	// falseint x = 2;// System.out.println(1 < x < 3);	// 错误写发,编译报错,不可以连着写}
}

TIPS:
以上代码最后的 1< x < 3 可以拆成 1 < x && x < 3 的逻辑方式来写方式。逻辑运算符,如下所述!!



逻辑运算符

与(并且) &&
全部都是true,结果才是true,否则为false
或(或者) ||
至少一个是true,结果就是true,全都是false,结果才为false
非(取反) |
本来是true,变成false;本来是false,变成true

注意:与“&&”,或“||”,具有短路效果:如果根据左边已经可以判断得到结果,那么右边的代码将不在执行,从而节省一定的性能。

代码演示:

public class Demo09Logic {public static void main(String[] args) {System.out.println(true && false);	// false// true && ture --> trueSystem.out.println(3 < 4 && 10 > 5);	// trueSystem.out.println(true || false);		// trueSystem.out.println(true || true);		// trueSystem.out.println(false || false);	// false	System.out.println(true);	// trueSystem.out.println(!true);	// false// 短路效果int a = 10;// false && ...System.out.println(3 > 4 && ++a < 100);System.out.println(a);	// 10}
}

注意事项:
1.逻辑运算符只能用于boolean值
2.与、或需要左右各自一个boolean值,但是取反只要有唯一一个boolean值即可。
3.与、或俩种运算符,如果有多个条件,可以连续写。
俩个条件:条件A && 条件B
多个条件:条件A && 条件B && 条件C



三元运算符

介绍:
一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增、自减~~~
二元运算符:需要俩个数据才可以进行操作的运算符。例如:加法+、赋值=
三元运算符:需要三个数据才可以进行操作的运算符。


格式:
数据类型 变量名 = 条件判断 ? 表达式A : 表达式B


流程:
首先判断条件是否成立:
如果条件成立为true,那么表达式A的值赋给左侧的变量
如果不成立为false,那么表达式B的值赋值给左侧的变量
二者选其一


代码演示:

public class Demo10Opertor {public static void main(String[] args) {int a = 10;int b = 20;// 数据类型 变量名 = 条件判断 ? 表达式A : 表达式B// 判断 a > b 是否成立,如果成立将a赋值给max,如果不成立,将b赋值给max,二者选其一int max = a > b ? a : b;System.out.println(max);	// 20// int result = 3 > 4 ? 2.5 : 10;	// 错误写法!!	右边表达式不符合左边数据类型System.out.println(a > b ? a : b);	// 正确写发!!}
}

注意事项: 如上代码演示
1.必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
2.三元运算符的结果必须被使用。

这篇关于运算符操作 【算数运算符(四则、自增自减、赋值)、比较运算符、逻辑运算符、三元运算符】 JAVA代码演示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/488216

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听