一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java switch()括號內參數的類型要求詳解

Java switch()括號內參數的類型要求詳解

2022-02-15 15:40索兒呀 Java教程

這篇文章主要介紹了Java switch()括號內參數的類型要求,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

switch()括號內參數的類型要求

先聲明一點,本人用的時jdk11,進行的探究。

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

一般我們都是這么使用switch()的,一般括號內參數寫的都是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;	
		}
	}
} 
//毫無疑問,括號內是 int 數據,可以編譯運行

Java switch()括號內參數的類型要求詳解

那么,括號內可以是byte,short,long,float,double,char,String,boolean類型的數據嗎?

先說一下結論:

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

下面是對每個數據類型的探究:

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;	
		}
	}
} 
//括號內可以是 byte

Java switch()括號內參數的類型要求詳解

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;	
		}
	}
} 
//括號內可以是 short

Java switch()括號內參數的類型要求詳解

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()括號內的參數要是int型,

而上面的 short,byte,之所以也行,是因為它們在括號內完成了基本數據類型的自動轉換,自動轉換成int了

Java switch()括號內參數的類型要求詳解

再對 long 探究一下,我在括號內把long強制轉換成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;	
		}
	}
} 
//編譯運行都成功了

Java switch()括號內參數的類型要求詳解

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 差不多

Java switch()括號內參數的類型要求詳解

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 的差不多

Java switch()括號內參數的類型要求詳解

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 可以

Java switch()括號內參數的類型要求詳解

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 也行

Java switch()括號內參數的類型要求詳解

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是不能強制轉換成int的

Java switch()括號內參數的類型要求詳解

枚舉類型enum

經過評論區ycxy_ZHT的補充:enum類型也是可以的

 

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

浮點型

浮點型無法精確比較,由于精度問題。

字符串

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://zhangguohao.blog.csdn.net/article/details/88571143

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品一区二区视频 | 国产欧美成人不卡视频 | 亚洲高清中文字幕一区二区三区 | 国产资源视频在线观看 | 日韩性大片免费 | 蜜桃麻豆 | 国产精品麻豆免费版 | 日韩在线天堂免费观看 | 美女脱一光二净的视频 | 青青久久精品国产免费看 | 91久久偷偷做嫩草影院免费看 | 精品一二三区久久AAA片 | 欧美人与物videos另类3d | 欧美日韩国产精品自在自线 | www.久久精品视频 | 韩国日本在线观看 | 91香蕉依人综合久久 | 嫩草视频在线观看视频播放 | 亚洲国产99在线精品一区69堂 | 亚洲色欲色欲综合网站 | 国产精品国产精品国产三级普 | 日本高清在线精品一区二区三区 | 嫩草影院永久在线播放 | 青草欧美| 果冻传媒在线视频播放观看 | www.青草视频| 日本一道一区二区免费看 | 四虎精品成人a在线观看 | 欧美se图 | 91短视频在线观看2019 | 国产成人精品免费2021 | 精品久久免费视频 | 青青草原伊人网 | 久9视频这里只有精品123 | 93版高校教师 | 女人爽到喷水的视频免费看 | 成品人视频免费观看 | 亚洲品质自拍视频 | 97色伦| 国产在线视频色综合 | 蜜色影院|