最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java switch()括號內(nèi)參數(shù)的類型要求詳解

 更新時間:2021年10月11日 10:05:58   作者:索兒呀  
這篇文章主要介紹了Java switch()括號內(nèi)參數(shù)的類型要求,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

switch()括號內(nèi)參數(shù)的類型要求

先聲明一點(diǎn),本人用的時jdk11,進(jìn)行的探究。

先說結(jié)論:switch()的參數(shù)類型可以是:int,byte,short;String;char;enum

一般我們都是這么使用switch()的,一般括號內(nèi)參數(shù)寫的都是int型

public class Demo{            
	public static void main(String[] args){
		int a = 1;
		switch(a){  
			case 1:
				System.out.println("我是1");break;
			case 2:
				System.out.println("我是2");break;	
		}
	}
} 
//毫無疑問,括號內(nèi)是 int 數(shù)據(jù),可以編譯運(yùn)行

在這里插入圖片描述

那么,括號內(nèi)可以是byte,short,long,float,double,char,String,boolean類型的數(shù)據(jù)嗎?

先說一下結(jié)論:

  • byte,short,int 沒問題
  • long,float,double 會報錯,但是可以再括號內(nèi)將他們轉(zhuǎn)化為 int ,就沒問題了
  • 從jdk1.7開始,String 也可以
  • char 也可以
  • boolean會報錯,而且boolean是不能強(qiáng)制轉(zhuǎn)換成int的

下面是對每個數(shù)據(jù)類型的探究:

byte

public class Demo{            
	public static void main(String[] args){
		byte a = 1;
		switch(a){   
			case 1:
				System.out.println("我是1");break;
			case 2:
				System.out.println("我是2");break;	
		}
	}
} 
//括號內(nèi)可以是 byte

在這里插入圖片描述

short

public class Demo{            
	public static void main(String[] args){
		short a = 1;
		switch(a){   
			case 1:
				System.out.println("我是1");break;
			case 2:
				System.out.println("我是2");break;	
		}
	}
} 
//括號內(nèi)可以是 short

在這里插入圖片描述

long

public class Demo{            
	public static void main(String[] args){
		long a = 1;
		switch(a){   
			case 1:
				System.out.println("我是1");break;
			case 2:
				System.out.println("我是2");break;	
		}
	}
} 
//編譯時報錯了,說明 long 不行

而且從報錯的說明可以看出,switch()括號內(nèi)的參數(shù)要是int型,

而上面的 short,byte,之所以也行,是因?yàn)樗鼈冊诶ㄌ杻?nèi)完成了基本數(shù)據(jù)類型的自動轉(zhuǎn)換,自動轉(zhuǎn)換成int了

在這里插入圖片描述

再對 long 探究一下,我在括號內(nèi)把long強(qiáng)制轉(zhuǎn)換成int,看看行不行:

public class Demo{            
	public static void main(String[] args){
		long a = 1;
		switch((int)a){   
			case 1:
				System.out.println("我是1");break;
			case 2:
				System.out.println("我是2");break;	
		}
	}
} 
//編譯運(yùn)行都成功了

在這里插入圖片描述

float

public class Demo{            
	public static void main(String[] args){
		float a = 1;
		switch(a){   
			case 1.0:
				System.out.println("我是1.0");break;
			case 2.0:
				System.out.println("我是2.0");break;	
		}
	}
} 

報錯情況和 long 差不多

在這里插入圖片描述

double

public class Demo{            
	public static void main(String[] args){
		double a = 1;
		switch(a){   
			case 1.0:
				System.out.println("我是1.0");break;
			case 2.0:
				System.out.println("我是2.0");break;	
		}
	}
} 

情況也和 long,float 的差不多

在這里插入圖片描述

String

public class Demo{            
	public static void main(String[] args){
		String a = "1";
		switch(a){   
			case "1":
				System.out.println("我是1");break;
			case "2":
				System.out.println("我是2");break;	
		}
	}
} 
//String 可以

在這里插入圖片描述

char

public class Demo{            
	public static void main(String[] args){
		char a = 'a';
		switch(a){   
			case 'a':
				System.out.println("我是a");break;
			case 'b':
				System.out.println("我是b");break;	
		}
	}
} 
// char 也行

在這里插入圖片描述

boolean

public class Demo{            
	public static void main(String[] args){
		boolean a = true;
		switch(a){   
			case true:
				System.out.println("我是true");break;
			case false:
				System.out.println("我是false");break;	
		}
	}
} 
//boolean 不行,而且boolean是不能強(qiáng)制轉(zhuǎn)換成int的

在這里插入圖片描述

枚舉類型enum

經(jīng)過評論區(qū)ycxy_ZHT的補(bǔ)充:enum類型也是可以的

switch()中不允許的數(shù)據(jù)類型有?

浮點(diǎn)型

浮點(diǎn)型無法精確比較,由于精度問題。

字符串

字符串沒有直接的比較操作符可以使用,只能通過strcmp之類的函數(shù)進(jìn)行比較,也不適合。

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

化州市| 汉寿县| 广元市| 金堂县| 麟游县| 辽阳市| 固原市| 遂宁市| 化州市| 前郭尔| 六枝特区| 宁晋县| 剑河县| 云梦县| 东明县| 任丘市| 台江县| 阿城市| 鹤壁市| 霍州市| 德格县| 瓦房店市| 犍为县| 政和县| 桑日县| 台安县| 吴川市| 寿光市| 永胜县| 容城县| 海伦市| 光山县| 剑川县| 手机| 双鸭山市| 那坡县| 克拉玛依市| 灌阳县| 清涧县| 子洲县| 伊川县|