zoukankan      html  css  js  c++  java
  • 三目运算符和+=及-=的神秘功能

      摘要:在这里大家都对着两个符号都比较熟悉了吧,都知道三目运算符是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);//②
    			}
    		}
    	}
    }
    

      如上面代码①与②的比较我们可以看出相加后赋值具有类型的转换功能。

  • 相关阅读:
    [JavaScript] 根据字符串宽度截取字符串
    [JavaScript] 时间戳格式化为yyyy-MM-dd日期
    [JavaScript] 获取昨日前天的日期
    [As3.0] 获取本机信息
    [CSS3] 几种分割线实现方法
    [JS] js 判断用户是否在浏览当前页面
    [JS] 理解jquery的$.extend()、$.fn和$.fn.extend()
    [JS] 屏蔽右键
    [JS] jq绑定事件的参数传递
    [CSS3] 各种角度的三角形绘制
  • 原文地址:https://www.cnblogs.com/qq1083735206/p/6130727.html
Copyright © 2011-2022 走看看