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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美激情影音先锋 | 久久午夜一区二区 | 国内精品 大秀视频 日韩精品 | 好舒服好爽再快点视频 | 亚洲欧美在线观看一区二区 | 97热在线| 肉文np高h | 国产在线精品香蕉综合网一区 | 任我鲁精品视频精品 | 91aaa免费免费国产在线观看 | 午夜理论电影在线观看亚洲 | 性直播免费 | porno xxxx日本 | 男人影院在线观看 | 日韩成人一级 | 国产精品亚洲午夜不卡 | 视频一区二区三区在线 | 日本中年japanesebear | 刺客女仆 | 日本情趣视频 | 欧美国产影院 | 人人澡 人人澡碰人人看软件 | 天天操天天干天天 | 人生路不在线观看完整版 | 亚洲成年人在线观看 | 欧美高清videosex极品 | 污樱桃视频| 男人的天堂在线观看免费 | 国产成人高清视频 | 天天舔天天干 | 欧美日韩高清完整版在线观看免费 | 亚洲欧美日韩中文字幕网址 | 爆操萝莉 | 人成网站在线观看 | 久久亚洲午夜牛牛影视 | 国产第7页 | 日韩欧美在线视频一区二区 | 美女bbxx美女bbb | 午夜电影三级还珠格格 | 亚洲国产精品第一区二区三区 | 亚洲国产精品自在现线让你爽 |