首页 > 代码库 > 三目运算符和+=及-=的神秘功能
三目运算符和+=及-=的神秘功能
摘要:在这里大家都对着两个符号都比较熟悉了吧,都知道三目运算符是if/else控制语句的一种快捷机制由 (布尔表达式)?语句:语句 这样构成,像if/else一样判定执行,但三目运算还有一个隐藏的数据类型转换功能,+=及-=也是一样不仅仅是相加或相减后赋值,让我们用几个例子来说明它们的隐藏功能。
一.三目运算符:
三目运算符:具有数据类型不一致时,就会显示出类型的转换,即是装得下就不转换,装不下就转换的功能;
例:
package com.lov.lianxiText; public class ValHold { public static void main(String[] args) { int a = 1; System.out.println(true ? ‘b‘ : 65535);//‘b‘是字符型,而65535是int型 System.out.println(true ? ‘b‘ : 65536); System.out.println(false ? a : ‘b‘); } }
如果我们不知道它的隐藏功能,只单单的用三目运算来看,大家都会认为输出的结果是98 98 98 吧!但结果会是这样吗?
因为‘b‘是字符型65535是int型,字符型大小是2个字节等同于short的大小,即能装的最大正整数是65535,当超过时,‘b‘就会转换数据类型为int输出b的ASCLL码98
二 .+=及-=:
加减赋值符号也带有数据类型的转换功能;
例:
package com.lovo.javaoo2; public class TXET { public static void main(String[] args) { char[]array={‘H‘,‘e‘,‘l‘,‘L‘,‘o‘,‘!‘}; changeCase(array); } public static void changeCase(char[]array){ for (int i = 0; i < array.length; i++) { if(array[i]>=‘A‘&&array[i]<=‘Z‘){ array[i]+=32;//① }else if(array[i]>=‘a‘&&array[i]<=‘z‘){ array[i]=(char)(array[i]-32);//② } } } }
如上面代码①与②的比较我们可以看出相加后赋值具有类型的转换功能。
三目运算符和+=及-=的神秘功能
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。