上一篇总结了java的数据类型,得到了冰麟轻武等兄弟的支持,他们提出并补充了非常好的建议,在这里向他们表示感谢。在后面的文章中,我会尽力写得更准确和更完善的,加油!

另外,因为C#是在java之后,也是在java的基础上设计出来的,所以C#语言与java有非常多相同的地方,同时,C#中也添加了一些新的功能和特性,比如LINQ和Lambda表达式等等。所以,我在比较java与.net的时候,大多数的不同是因为C#新添加了一些特性,只要明白这个背景就可以了。

那么这一篇我们要总结的是java中的运算符和表达式。我想从以下几点进行总结说明。

1,算术运算符

2,自增自减运算符

3,关系运算符

4,位运算符

5,移位运算符

6,逻辑运算符

7,三元运算符

一,算术运算符

算术运算符包括加(+),减(-),乘(*),除(/)和求余(%)五种运算符。下面是示例和代码。

public class SuanShuOperator {
public static void main(String[] args) {
int i1 = 7;
int i2 = 3; int jia = i1 + i2; // 加法
int jian = i1 - i2; // 减法
int cheng = i1 * i2; // 乘法
int chu = i1 / i2; // 除法
int yu = i1 % i2; // 求余 System.out.println("加法运算的结果是:" + jia);
System.out.println("减法运算的结果是:" + jian);
System.out.println("乘法运算的结果是:" + cheng);
System.out.println("除法运算的结果是:" + chu);
System.out.println("求余运算的结果是:" + yu);
}
}

程序输出结果:

减法运算的结果是:4  乘法运算的结果是:21  除法运算的结果是:2  求余运算的结果是:1

总结:算术运算符的用法java与C#基本相同。

二,自增自减运算符

自增和自减是一种特殊的算术运算符,我们的算术运算符一般是对两个数来进行操作的,但是自增和自减是对一个数进行操作的。

自增表示该数加1,自减表示该数减1。需要重点注意的是,自增和自减运算符前缀和后缀的区别,前缀表示先自增或自减,再进行表达式计算,而后缀表示先进行表达式计算,再进行自增或自减。

下面是示例和代码。

public class ZiZengJianOperator {
public static void main(String[] args) {
int a = 5;
int b = 5;
int x = 2 * ++a; // 自增运算符前缀
int y = 2 * b++; // 自增运算符后缀
System.out.println("自增运算符前缀,运算后 a=" + a + "表达式x=" + x); // 6,12
System.out.println("自增运算符后缀,运算后 b=" + b + "表达式y=" + y); // 6,10
}
}

程序输出结果:

自增运算符前缀,运算后 a=6表达式x=12  自增运算符后缀,运算后 b=6表达式y=10

总结:自增和自减运算符的用法与C#基本相同。

三,关系运算符

关系运算符用于计算两个操作数之间的关系,其结果是布尔类型。关系运算符包括等于(==),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=)。

关系运算符在实际开发中,一般作为if的条件,因为它返回的是布尔类型。

下面是示例和代码

public class OperatorGuanxi {
public static void main(String[] args) {
int i=1; //0表示女,1表示男 if(i==1) System.out.println("男"); //使用了关系运算符==
else System.out.println("女");
}
}

程序输出结果:男

总结:关系运算符的用法与C#基本相同。

位运算符和移位运算符在开发中使用得非常少,所以这里暂不做总结。

六,逻辑运算符

逻辑运算符一般用在对返回值为布尔类型的表达式进行计算,也是返回布尔类型的值。

逻辑运算符分为非短路和短路两大类,我们重点总结的是短路逻辑运算符,因为它在实际的开发中使用得最多。

短路逻辑运算符包括与(&&),或(||)和非(!)三种。对于与&&,只要有一个表达式返回false,则结果返回false。对于或||,只要有一个表达式返回true,则结果返回true。对于非!,就是取反,如果表达式返回false,则结果为true,如果表达式返回true,则结果为false。

public class OperatorLogic {
public static void main(String[] args) {
// 短路逻辑运算符
int a = 5;
boolean b1 = (a < 4) && (a++ < 10); // false,只要有一个表达式为false,则运算结果为false
boolean b2 = (a < 6) || (a++ > 10); // true,只要有一个表达式为true,则运算结果就为true
boolean b3 = !b2; //因为b2为true,所以取非结果为false
System.out.println("逻辑与运算后的结果为:" + b1);
System.out.println("逻辑或运算后的结果为:" + b2);
System.out.println("逻辑非运算后的结果为:" + b3);
}
}

程序输出结果为:

逻辑与运算后的结果为:false  逻辑或运算后的结果为:true  逻辑非运算后的结果为:false

总结:逻辑运算符的用法与C#基本一致。

七,三元运算符

三元运算符支持条件表达式,在实际开发中,我们可以用它来代替if…else语句,使我们的程序更加整洁优雅。

它的语法格式为:expression?statement1:statement2

下面是示例和代码:

public class OperatorSanYuan {
public static void main(String[] args) {
// 三元运算符
// expression?statement1:statement2
int i, k;
i = 5;
k = i >= 0 ? i : -i; // 使用了三元运算符
System.out.println(i + "的绝对值是:" + k);
i = -5;
k = i >= 0 ? i : -i;
System.out.println(i + "的绝对值为:" + k);
}
}

程序输出结果为:

5的绝对值是:5  -5的绝对值为:5

总结:三元运算符的用法与C#基本相同。

另外,表达式可以简单地看成是数据和运算符的结合。运算符的优先级我们也有必要了解,这里就不做总结了。

文章摘自:http://www.cnblogs.com/mcgrady/p/3400462.html

java与.net比较学习系列(4) 运算符和表达式的更多相关文章

  1. Java I/O系统学习系列二:输入和输出

    编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象.“流”屏蔽了实际的I/O设备中处理数据的细节. 在这个系列的第一篇文章:<< ...

  2. Java 7 源码学习系列(一)——String

    String表示字符串,Java中所有字符串的字面值都是String类的实例,例如“ABC”.字符串是常量,在定义之后不能被改变,字符串缓冲区支持可变的字符串.因为 String 对象是不可变的,所以 ...

  3. Sql Server系列:运算符和表达式

    运算符的一些符号,他们能够用于执行算术运算.字符串连接.赋值以及在字段.常量和变量之间进行比较.在SQL Server 2012中,运算符主要由以下6大类:算术运算符.赋值运算符.比较运算符.逻辑运算 ...

  4. java与.net比较学习系列(1) 开发环境和常用调试技巧

    最近因为公司项目要由.net平台转到java平台的原因,之前一直用.net的我不得不开始学习java了,刚开始听到说要转java的时候很抗拒,因为我想专注在.net平台上,不过这样也并不完全是坏事,通 ...

  5. Java I/O系统学习系列一:File和RandomAccessFile

    I/O系统即输入/输出系统,对于一门程序语言来说,创建一个好的输入/输出系统并非易事.因为不仅存在各种I/O源端和想要与之通信的接收端(文件.控制台.网络链接等),而且还需要支持多种不同方式的通信(顺 ...

  6. java与.net比较学习系列(2) 基础语言要素

    这一篇从最基础的开始对比总结,说起基础语言要素,故名思义,就是学习语言的基础,主要内容包括标识符,关键字和注释.我想从以下几点进行总结,有区别的地方有都使用红色粗体字进行了总结. 1,标识符 2,关键 ...

  7. Java I/O系统学习系列三:I/O流的典型使用方式

    尽管可以通过不同的方式组合IO流类,但我们可能也就只用到其中的几种组合.下面的例子可以作为典型的IO用法的基本参考.在这些示例中,异常处理都被简化为将异常传递给控制台,但是这只有在小型示例和工具中才适 ...

  8. java与.net比较学习系列开发环境和常用调试技巧常用操作快捷键

    调试         F5 F11 调试运行   CTRL+F5 暂无 非调试运行   F6 不适用 编译整个解决方案   SHIFT+F6 不适用 编译当前选择的工程   SHIFT+F5 CTRL ...

  9. (一)《Java编程思想》学习——按位运算符、移位运算符

    (第三章) (一)按位运算符 按位逻辑运算符有: “与”(AND)        & 1&1=1;1&0=0;0&0=0 “或”(OR) | 1|1=1;1|0=1;0 ...

随机推荐

  1. STM32F051 IAP源代码分享

    STM32F051 IAP源代码分享 假设不懂IAP的请自己主动脑补或者怒戳这里 http://www.openedv.com/posts/list/11494.htm 然后STM32F051的IAP ...

  2. C++ MPICH

    假设一个C++的MPI程序在单机上能够跑.可是在多机上跑会报下面错误: Fatal error in MPI_Send: Unkown error class , error stack. 解决方法: ...

  3. WP系统推广难的原因之中的一个之我见

    个人也觉得如今的Android市场几家独大,竞争太激烈.利润空间挤压太严重,有实力的厂家不如尝试剑走偏锋,在其它大佬都还没跟进的时候,把市场投向WP.先入为主,不失为良策! 话说Microsoft不开 ...

  4. 解决如何让AsyncTask终止操作

    受到这个的启发终于结局了如何在AsyncTask运行中终止其操作. 单纯的onCancelled(true)是不行的 下面把代码贴出来~实现了登陆功能. AsyncTask简介,它使创建需要与用户界面 ...

  5. MySQL Replication Error 处理一例

    故障现象 MySQL slave status详情 mysql> show slave status\G *************************** 1. row ********* ...

  6. Javascript高级程序设计读书笔记(第三章)

    第3章 基本概念 3.4 数据类型 5种简单数据类型:undefined.boolean.number.null.string. typeof操作符,能返回下列某个字符串:“undefined”.“b ...

  7. css3 tranform  transition animation

    tranform:对象图形变形 tranform的属性包括:   1.none 表示不进行变换:   2.rotate 旋转            transform:rotate(20deg) 旋转 ...

  8. HTML与CSS入门——第九章 使用颜色

    知识点: 1.为网站选择颜色的方法 2.颜色在Web上的工作方式 3.使用十六进制颜色值的方法 4.使用CSS设置背景.文本和边框颜色的方法 9.1 选择颜色的最佳方法: 直白地说:根据用户群体找到最 ...

  9. 使用区域组织 ASP.NET MVC 应用程序

    MVC 模式可将应用程序的模型(数据)逻辑与其呈现逻辑和业务逻辑分离. 在 ASP.NET MVC 中,这种逻辑分离还在项目结构中以物理方式实现,在该项目结构中,控制器和视图保存在使用命名约定定义关系 ...

  10. android default_workspace.xml

    //default_workspace.xml中,支持的标签有: favorite:应用程序快捷方式. shortcut:链接,如网址,本地磁盘路径等. search:搜索框. clock:桌面上的钟 ...