三元表达式
A大于B吗? 大于 就选A,否则就选B
由(? :)符号表示的,具体的含义其实就和(if-else)结构的含义差不多,这种运算符会将某个条件作两种处理,如果满足条件的话就执行第一个结果,如果不满足的话就执行另外一个结果,例如:
Int A,B,C;
A=2;
B=3;
C=A>B ? 100 :200;
这条语句的意思是,如果A>B的话,就将100赋给C,否则就将200赋给C;
三元嵌套
String str = a.equals("123") ? "123" : ( b.equals("456") ? "456" : "789");
// 如果a等于123 就给str赋值123 否则 如果b等于456 就给str赋值123 前面两个如果都不成立就赋值789
三元多嵌套
从逻辑思维的方法来将,一般人的最多理解三次元物体,也就是说理解3层空间 到了更多,大脑是无法理解的
然而多层嵌套理解我从《递归》里得出心法
先将下递归:
什么是递归?
例如:
我抱着 我的我的我的我的我的小熊
在简单举例就是镜子中有镜子(现实你可以买2面镜子 面对面对摆放)
递归是有去有回的就像我们学的物理一样光反射 但是递归是原路去原路回
不多说 我先上代码
这里我上的是图片,原理就是让学者自己敲一遍多理解理解
这类我玩三元完了5层 ,其实看的出看到这么括号,问好 都是头疼的
但是5层嵌的原理:就是前2个数先比较在和第3个数去比较
在这其实大家估计都理解,但是看输出代码就不理解了
很简单 最后一行的输出代码 我们不要从右往左看,(也千万不要从左往右看),直接往中间开始看 就想花蕊开花一样重最里面的括号慢慢往外看先得出括号里的值 (括号优先级) 这样就会很简单的看出来
QQ群947405150 感兴趣的盆友可以一起探讨算法其java其他玩法