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

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

我们来看一段代码:

  1. int a = 3;
  2. int b = 3;
  3. a++;
  4. b--;
  5. System.out.println(a);
  6. System.out.println(b);

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

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

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

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

我们再看一段代码:

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

  1. int a = 3;
  2. int b;
  3. b = a++ + 10;
  4. System.out.println(a);
  5. System.out.println(b);

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

总结:

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

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

  1. int a = 3;
  2. int b;
  3. b = ++a + 10;
  4. System.out.println(a);
  5. 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

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

  1. public class OperatorDemo3
  2. {
  3. public static void main(String[] args){
  4. byte x=10;
  5. byte y=x+20;
  6. System.out.printIn(y)
  7. }
  8.  
  9. }

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

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

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

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

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

运行结果为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;

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

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

我们看一下复杂的代码:

  1. int a = 5;
  2. int b = 3;
  3. int c = 1;
  4. 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. 独家 | 蚂蚁金服TRaaS技术风险防控平台解密

    小蚂蚁说: 在金融行业,风险防控能力的重要性不言而喻.而蚂蚁金服可实现高达99.999%的异地多活容灾,千亿级资金秒级实时核对“账.证.实”等能力也让业界有目共睹. 今年位于杭州的蚂蚁金服ATEC科技 ...

  2. bzoj 4034: [HAOI2015]树上操作 树链剖分+线段树

    4034: [HAOI2015]树上操作 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 4352  Solved: 1387[Submit][Stat ...

  3. 关于python的“重载”

    首先,关于python和java的区别: 1.Java有是通过方法名和方法列表来定义一个函数,python是通过方法名来定义一个函数(不允许方法名相同的函数存在) 2.java是通过定义多个相同方法名 ...

  4. java常用技术名词解析

    1.1 token Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便 将此Token返回给客户端,以后客户端只需带上这个Token前来请求数 ...

  5. AQS是什么?

    AQS介绍 AQS,即AbstractQueuedSynchronizer, 队列同步器,它是Java并发用来构建锁和其他同步组件的基础框架.来看下同步组件对AQS的使用: AQS是一个抽象类,主是是 ...

  6. 从RGB扫描图到数字化等高线矢量图

    1 用arcgis 对地形图进行校正,主要是通过判断地图的坐标系统,然后将图层的坐标系统设置正确.选择图上的经纬网交点,对原图进行校正,一般要求四角和均匀布点. 2 二值化图像.如果是RGB图像,即彩 ...

  7. CxImage透明图片合成和文字叠加

    1         CxImage的作用 CxImage将几张图片合成一张图片,在一张底图上添加图片,有些图片是有透明效果的,实现图片之间的透明重叠效果.另外还可以添加文字. (1)背景图片mymix ...

  8. boke练习: freemarker对空变量报错 (classic_compatible设置true,解决报空错误)

    我有一个变量: commentModel 默认只是为空, 在freemarker模板中使用<#if>判断是报错 <#if commentModel> ..... </#i ...

  9. Alibaba Java诊断工具Arthas之快速安装和简单使用

    Alibaba Java诊断工具Arthas简单介绍 : 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception ...

  10. LeetCode--006--Z字型变换(java)

    将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T ...