1.1                算数运算符++、--的使用

在一般情况下,算数运算符不会改变参与计算的变量值。而是在原有变量值不变的情况下,计算出新的值。但是有些操作符会改变参与计算的变量的值,比如++,--。

我们来看一段代码:

int a = 3;
int b = 3;
a++;
b--;
System.out.println(a);
System.out.println(b);

上面代码的输出结果a值为4,b值为2;

这说明a的原有值发生了改变,在原有值的基础上自增1;b的原有值也发生了改变,在原有值的基础上自减1;

l  ++运算符,会在原有值的基础上自增1;

l  --运算符,会在原有值的基础上自减1。

我们再看一段代码:

++,--运算符参与运算操作时,发生了怎样的变化,我们来看一段代码:

int a = 3;
int b;
b = a++ + 10;
System.out.println(a);
System.out.println(b);

上面代码的输出结果a值为4,b值为13;

总结:

++,--运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1;

再介绍下++,--运算符前置时,参与运算操作的变化,我们来看一段代码:

int a = 3;
int b;
b = ++a + 10;
System.out.println(a);
System.out.println(b);

上面代码的输出结果a值为4,b值为14;

这里我强调一下,当++,--运算符参与运算操作时,前置++,--的作用:

++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。

1.2                赋值运算符

运算符

运算规则

范例

结果

=

赋值

int a=2

2

+=

加后赋值

int a=2,a+=2

4

-=

减后赋值

int a=2,a-=2

0

*=

乘后赋值

int a=2,a*=2

4

/=

整除后赋值

int a=2,a/=2

1

%=

取模后赋值

int a=2,a%=2

0

首先:我们看下面的错误代码

public class OperatorDemo3
{
public static void main(String[] args){
byte x=10;
byte y=x+20;
System.out.printIn(y)
} }

因为上面是byte+20结果应该为Int类型,但是直接写成byte类型了,没有强制转换。

如果用赋值运算符后,就会将结果自动强制转换数据类型,下面便是:

注意:诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。

写一个代码,我们看一下赋值运算符的使用

 /*
* 赋值运算符
* +=, -=, *=, /=, %= :
* 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的
* 注意:赋值运算符左边必须是变量
*/
public class OperatorDemo2 {
public static void main(String[] args) {
byte x = 10;
x += 20;// 相当于 x = (byte)(x+20);
System.out.println(x);
}
}

运行结果为30.

1.3                逻辑运算符

逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false。

运算符

运算规则

范例

结果

&

与

false&true

False

|

或

false|true

True

^

异或

true^flase

True

!

非

!true

Flase

&&

短路与

false&&true

False

||

短路或

false||true

True

看完图后,我们来看一下逻辑运算符的常规使用方式:

    ^:两边不相同为true,否则为false

  

l  短路与&&:参与运算的两边数据,有false,则运算结果为false;

l  短路或||:参与运算的两边数据,有true,则运算结果为true;

l  逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。

短路的作用是一边又false,另一边不执行。提高效率

1.4               三元运算符

l  格式:

(条件表达式)?表达式1:表达式2;

通过代码演示,我们来学习下三元运算符的使用:

方式一:
System.out.println( 3>2 ? “正确” : “错误” );
// 三元运算符运算后的结果为true,运算结果为表达式1的值“正确”,然后将结果“正确”,在控制台输出打印 方式二:
int a = 3;
int b = 4;
String result = (a==b) ? “相等” : “不相等”;
//三元运算符运算后的结果为false,运算结果为表达式2的值“不相等”,然后将结果赋值给了变量result 方式三:
int n = (3>2 && 4>6) ? 100 : 200;
//三元运算符运算后的结果为false,运算结果为表达式2的值200,然后将结果200赋值给了变量n

我们看一下复杂的代码:

int a = 5;
int b = 3;
int c = 1;
int n2 = (a>b && b>c) ? (c++) : (++c);

这段代码运算执行顺序我们也写一下:

l  1.小括号优先级高,我们先运算第一组小括号中的代码

l  1.1. 比较运算符”>” 优先级大于 逻辑运算符”&&”

n  先执行 a>b,得到结果true;

n  再执行 b>c,得到结果true;

n  最后执行 a>b的结果 && b>c的结果,即 true && true, 结果为true

l  2.三元运算符中的条件判断结果为true,返回表达式1的结果 c++

n  先将变量c的原有值赋值给变量n2,即n2值为1;

n  再将变量c的值自增1,更新为2。

结果是n2=1;c=2;

java基础语法运算符的更多相关文章

  1. Java基础语法-运算符

    1算术运算符 1.1运算符和表达式 运算符:对常量和变量进行操作的符号. 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式. 不同运算符链接的表达式体现的是不同类型的表达式 ...

  2. JavaSE入门学习6:Java基础语法之运算符和语句(上)

    继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age ...

  3. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  4. Java基础语法(3)-运算符

    title: Java基础语法(3)-运算符 blog: CSDN data: Java学习路线及视频 1.算术运算符 算术运算符的注意问题 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1. ...

  5. 033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结

    033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结 本文知识点:运算符和表达式知识点总结 前面学习的几篇文都是运算符和表达式相关的知 ...

  6. 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题

    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...

  7. 031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级

    031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级 本文知识点:Java中运算符的优先级 运算符的优先级问题 前面学习了很多的运算符,如果这些 ...

  8. 030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符

    030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符 本文知识点:Java中的条件运算符 条件运算符是Java当中唯一一个三目运算符 什么是三目运算 ...

  9. 029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑“非”运算符

    029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑"非"运算符 本文知识点:Java中的逻辑"非"运算符 逻辑& ...

随机推荐

  1. mysql索引使用

    原文:http://www.jianshu.com/p/2b541c028157 索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型.在 ...

  2. sqlserver 中常见的函数 数学函数

    create table testnum( ID int identity(1,1), num float) insert testnum values (1) insert testnum valu ...

  3. Java java.lang.SecurityException: Prohibited package name

    java.lang.SecurityException: Prohibited package name 提示java错误: Exception in thread "main" ...

  4. ZZNUOJ 2022 摩斯密码

    map打表存一下对应的密码   不会map感觉不好弄这题 #include<stdio.h> #include<string.h> #include<math.h> ...

  5. 首篇 sdk 之 AlertDialog

    带着十足的干劲,用着有限的英语水平,我们来看看sdk里docs里的AlertDialog: AlertDialog SDK 原文描述:A dialog that can show a title, u ...

  6. 力扣(LeetCode) 997. 找到小镇的法官

    在一个小镇里,按从 1 到 N 标记了 N 个人.传言称,这些人中有一个是小镇上的秘密法官. 如果小镇的法官真的存在,那么: 小镇的法官不相信任何人. 每个人(除了小镇法官外)都信任小镇的法官. 只有 ...

  7. vue.js相关UI组件收集

    内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 ###UI组件 element ★9689 - 饿了么出品的Vue2的web UI工具套件 Vux ★6927 - 基于Vu ...

  8. Asp.net core 学习笔记 ( Identity 之 Authentication )

    和从前的 identity 区别不是很大. 从 2.1 开始 vs 模板的 identity 都被封装了起来, 你几乎看不到任何一行代码, 需要向下面这样打开它, 才能做修改. 说一下比较常用的配置 ...

  9. gooreplacer 很好用

    国内上 StackOverflow, hackernews 之类的站点会慢. 因为页面里有链接指向 google 谷歌, 会被墙. 于是拖累了整个页面的显示. gooreplacer 可以把这些被墙连 ...

  10. [mybatis-spring] Transaction 事务/事务处理/事务管理器

    使用mybatis-spring的主要原因之一就是: mybatis-spring允许mybatis参与到spring 事务中. mybatis-spring leverage[use (someth ...