【概述】
在if/条件语句中,我们已经谈及判断了,这次将详细讲讲一些逻辑判断
基本逻辑
&:且,And,需要二者均为True
|:或,Or ,需要二者其一为False即可
^:异或,XOE,两者结果不同为true,否则为false
!: 非,Not
短路
短路与 && 短路或 ||
简而言之,短路与或就是当“条件满足”就立刻执行,不会判断完所有条件,比如我们有两个boolean为A,B:
A&&B :如果A已经是false,则不去判断B;如果A是true,再去判断B
A||B :如果A是true,则直接执行,不判断B;如果A是false,再去检测B是否为true
短路与或不仅可以节省时间,在一些特殊情况有特殊作用
【运算顺序】
见下图
大部分情况下按着运算顺序写就好了,一般不会错
【转换】
转换有两种:显式转换 Narrowing or Explicit Conversion ,以及隐式转换 Widening or Automatic Conversion
隐式转换:一般是由低精度到高精度的转换,此时机器会帮助我们自动完成,比如(1 -> 1.0),一般在1.两种数据类型兼容且将较小数据类型的值分配给较大数据类型时进行。关于精度,见下表
低 byte short int long float double 高 ,其中float和double会精确至小数
显式转换:与隐式相反,显式转换常常是把高精度向低精度转换的过程(1.0 -> 1),因此常常需要程序员去处理此事(指加代码)。在高转低的过程中,精度会丢失
使用方法是在要显式转换的数据前加上 (目标数据类型) ,比如
double a = 1.23456 ;
float b = (float)a ;
int c = (int)b ;
对于字符串中的数据转换,我们前一篇 https://www.cnblogs.com/RetenQ/p/14589583.html 已经提到了,那么如何将数值结果转为字符串呢,见下
Integer.toString(<int>) //int转String
Byte.toString(<byte>) //byte转String
Short.toString(<short>) //short转String
Float.toString(<float>) //float转String
Boolean.toString(<Boolean>) //boolean转String
String.valueOf(<long>) //将long的值给予String
String.valueOf(<double>) //将double的值给予String
Character.toString(<char>) //char转换为String
<char> + "" //效果同上
另外,还有其它的一些小tips:
基本上每个字符char都有其ASCII值,当我们将char转换为int时,int将得到char的ASCII值
如果我们输入的char为数字(例如char =‘1‘;),当我们将其转换为int时,返回值将不是1,则int将返回其ASCII值(比如这时候就是49)
类似于char转int,,现在我们有了int的ASCII值,char将返回其值(还是上一条的例子,这回是49变‘1’)
原文:https://www.cnblogs.com/RetenQ/p/14655087.html