首先了解java运算符的优先级和结合性:

常用转义字符表:

示例1 取余/字符串/转义字符:

class operator1
{public static void main(String[] args){//取余System.out.println(-1%5);//-1System.out.println(1%-5);//1与左边的操作数同号System.out.println(3.1%2.5);//字符串:字符串数据和任何数据使用+都是相连接//,最终变成字符串System.out.println("ab"+5+5);//"ab55"int a=3,b=4;System.out.println("a="+a+",b="+b);//"a=3,b=4"(加双引号表示其为字符串)//转义字符:每一个转义字符是一个单一字符 '\n'System.out.println("java\rev");//evvaSystem.out.println("java\nev");//java//evSystem.out.println("\\n");//"\n"char ch='好';//一个中文2byte,char型2byteSystem.out.println(ch);System.out.println("& "+(12&23));//4//System.out.println("&& "+(12&&23));//错误,不能用于非boolean类型运算System.out.println("^ "+(12^23));//27System.out.println("^ "+(true^false));//true//^,&既能用于数值运算,也可以用于boolean型运算}}

运行结果:

在以上的例子中注意'\r'和'\n'区别:\n 是回车+换行 把光标 先移到 行首 然后换到下一行 也就是 下一行的行首拉

\r 就是return 回到 本行 行首 这就会把这一行以前的输出 覆盖掉

\t:一个"制表区"占8列.

参考文章:http://hane00.blog.163.com/blog/static/1600615220126204446809/

示例二:赋值运算符/位运算符

class operator2
{public static void main(String[] args){//+=,/=,*=......short s=5;//s=s+5;//报错,s+5结果为int,不能赋值给short型(做了两次运算)s += 5;//成功,原因:首先做了一次运算:把左右两边的和//赋值给左边,和short s=5;类似.+=运算符给s赋值时自动完成//强转操作System.out.println("s="+s);//关于^:假设两个数a,b,则有:a^b^b=a,应用到两数交换int a=4,b=5;a=a^b;b=a^b;//相当于(a^b)^b为a,赋值给了ba=a^b;//相当于(a^b)^a为b,赋值给了aSystem.out.println("a="+a+",b="+b);//一般仍采用第三方变量(temp)进行交换}}

运行结果:

示例3:条件运算符结果类型

class operator3
{public static void main(String[] args) {char x='X';//对int类型的常量进行测试int i=12;System.out.println(true?x:12);//XSystem.out.println(true?x:i);//88//对long类型的常量进行测试long l=12L;System.out.println(true?x:12L);//88System.out.println(true?x:l);//88//对float类型的常量进行测试double d=12.0;System.out.println(true?x:12.0);//88.0System.out.println(true?x:d);//88.0

     }}

运行结果:

确定条件表达式结果类型的规则过于冗长和复杂,很难完全记住它们,但是其核心就是一下三点:

  • 如果第二个和第三个操作数具有相同的类型,那么它就是条件表达式的类型。换句话说,你可以通过绕过混合类型的计算来避免大麻烦。
  • 如果一个操作数的类型是T,T表示byte、short或char,而另一个操作数是一个int类型的常量表达式,它的值是可以用类型T表示的,那么条件表达式的类型就是T。
  • 否则,将对操作数类型运用二进制数字提升,而条件表达式的类型就是第二个和第三个操作数被提升之后的类型。

关于第三点:个人理解为应该向  占用字节多(精度高)的类型 提升

还有一点:三元运算符运算完必须要有结果.

例如:

20>10?System.out.println("20"):System.out.println("10");//运行失败,但是C语言可以.

原文地址:http://www.cnblogs.com/gw811/archive/2012/10/28/2743586.html

最后总结一下if-else和switch什么时候用?

具体数值判断,数值不多,而是符合 char,short,byte,int(switch可选择的类型,随着JDK版本提升,可能会添加一些类型(字符串,枚举))

建议用switch,效率稍高,因为switch列出了所有可能.

其它情况,对区间判断,对结果为boolean型判断,用if,if使用范围更广


----android培训 、java培训、期待与您交流!----

转载于:https://www.cnblogs.com/yiqiu2324/archive/2013/01/14/2859380.html

day02(下)_运算符相关推荐

  1. c语言移动通信功率计算,《移动通信软件编程基础—C语言》第3章_运算符.ppt

    <移动通信软件编程基础-C语言>第3章_运算符.ppt 移动通信软件编程基础 C语言,知识回顾3,运算符,第,章,本章目标理解表达式,掌握赋值运算符和赋值表达式,掌握关系运算符和关系表达式 ...

  2. 将vs+Qt的工程从windows平台移植到linux下_

    ​​​​​​​​​​​​将vs+Qt的工程从windows平台移植到linux下_崔杰城的博客-CSDN博客_windows下的qt工程移植到linux下 windows下Qt的开发人员常用vs+Qt ...

  3. day02 格式化输出 运算符 编码 字符串 列表 元组 字典 set集合 深浅拷贝

    day02学习大纲 一. 格式化输出: %s 占位字符串 %d 占位数字 "xxx%sx %sxx" % (变量, 变量) 二. 运算符: a+=b a = a + b and 并 ...

  4. python线程安全的计数器_+ =运算符在Python中是线程安全的吗?

    + =运算符在Python中是线程安全的吗? 我想为实验创建一个非线程安全的代码块,这些是2个线程将要调用的函数. c = 0 def increment(): c += 1 def decremen ...

  5. Web前端学习笔记11:JavaScript_注释_输入输出_变量_数据类型_关键字_保留字_运算符_流程控制

    文章目录 JavaScript基础第01天 1 - 编程语言 1.1 编程 1.2 计算机语言 1.3 编程语言 1.4 翻译器 1.5 编程语言和标记语言区别 总结 2 - 计算机基础 2.1 计算 ...

  6. Day02[20200715]_数据库进阶

    目录 一.作业讲解 1.Typora的使用和设置 2.myschool数据库和数据表的创建 (1)创建数据库 (2)数据库模型图 (3)创建数据表grand (4)创建数据表student (5)创建 ...

  7. [19/05/26-星期日] JavaScript_ 基本语法_运算符

    一.概念 <!DOCTYPE html> <html><head><meta charset="UTF-8"><title&g ...

  8. string 转比较运算符_运算符

    1.概述 算术运算符 + - * / 基本运算 算术运算符 % 取模,取余数,计算整除 算术运算符 ++ -- 自增 自减 比较运算符 == != 相等比较 不等比较 逻辑运算符 && ...

  9. ios自带连点器一秒10000下_这6个iOS隐藏技巧让你的iPhone更高效 超级实用

    无论你是不是果粉,都无法否认iOS系统优秀的性能,不过很多人吐槽iOS系统的封闭性,不如开源的安卓系统那样易用.其实只要掌握了一些iOS的隐藏技巧,你会发现手中的iPhone比想象中更高效,一起来学习 ...

最新文章

  1. 计算机视觉及深度学习_面试问题(一)
  2. 网络国际治理系列 | WTO电子商务谈判合并文本数据跨境流动部分
  3. 画活动图教程_绘画教程116—传统的山水现代的刀画,看了就会的步骤图
  4. GraphQL和REST对比时需要注意些什么
  5. 【Java 网络编程】TCP API 简介 ( Socket | ServerSocket )
  6. NLPIR大数据处理技术实现多种类智能挖掘
  7. 查看PLC IP 端口_三种方法实现以太网远程访问西门子PLC!
  8. Java黑皮书课后题第8章:**8.14(探讨矩阵)编写程序,提示用户输入一个方阵的长度,随机地在矩阵中填入0和1,打印这个矩阵,然后找出整行、整列或者对角线都是1或0的行、列和对角线
  9. 博鳌直击 | 大数据开发的最大障碍是什么?
  10. 一日一学:返回排序好的列表的索引顺序
  11. TOP互联网公司都在用,为什么SRE比传统运维更抢手?
  12. Python | threading01 - 创建两个同时运行的子线程
  13. c语言赋值运算符 amp amp 怎么读,重载赋值运算符 amp;amp; 对象
  14. Android 大位图加载
  15. 【LeetCode】【数组】题号:*645,重复数字和缺失数字
  16. Java 匿名内部类、Java 中 == 与 equals 的区别
  17. 深入浅出设计模式① —— 设计模式之路
  18. cgi一键还原 linux分区,用一键恢复CGI工具备份还原分区和硬盘使用图文教程
  19. AD9 设置网络标号作用域 (NET 全局)
  20. 矩阵基础11- 广义逆矩阵及应用

热门文章

  1. 揭穿现金贷的真实面目
  2. 从IC设计来看Trace32的用途
  3. qt开发环境 - c++之输入,输出,名字空间定义,名字空间指令,名字空间声明
  4. alchemy php,Flask SQLAlchemy
  5. python中re_Python中re(正则表达式)模块学习
  6. 领域驱动设计 pdf_什么是领域驱动设计?
  7. tcp 和 dcp 的几大区别
  8. python图片转文字_【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码...
  9. webpack4配置基础
  10. 微信小程序image bindload事件失效不触发