欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

在這里插入圖片描述

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

先說一下結論:

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

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

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

在這里插入圖片描述

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

在這里插入圖片描述

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

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

在這里插入圖片描述

再對 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;	
		}
	}
} 
//編譯運行都成功了

在這里插入圖片描述

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

在這里插入圖片描述

枚舉類型enum

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

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

浮點型

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

字符串

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

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

相關文章

  • 例題詳解Java?dfs與記憶化搜索和分治遞歸算法的使用

    例題詳解Java?dfs與記憶化搜索和分治遞歸算法的使用

    遞歸指函數(shù)調用自身。常用的遞歸算法有dfs(深度優(yōu)先搜索)、記憶化搜索和分治,接下來將用幾個算法題來帶你熟練掌握它
    2022-04-04
  • Java Springboot如何基于圖片生成下載鏈接

    Java Springboot如何基于圖片生成下載鏈接

    這篇文章主要介紹了Java Springboot如何基于圖片生成下載鏈接,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Java實現(xiàn)的兩種常見簡單查找算法示例【快速查找與二分查找】

    Java實現(xiàn)的兩種常見簡單查找算法示例【快速查找與二分查找】

    這篇文章主要介紹了Java實現(xiàn)的兩種常見簡單查找算法,結合具體實例形式分析了java快速查找與二分查找的原理與簡單實現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • Java實戰(zhàn)之基于I/O流設計的圖書管理系統(tǒng)

    Java實戰(zhàn)之基于I/O流設計的圖書管理系統(tǒng)

    這篇文章主要介紹了Java實戰(zhàn)之基于I/O流設計的圖書館管理系統(tǒng),文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 全面解析SpringBoot配置文件

    全面解析SpringBoot配置文件

    這篇文章主要為大家全面的解析SpringBoot-配置文件,文中附含詳細的圖文示例代碼,以便同學們能更好的理解,有需要的同學可以借鑒參考下
    2021-09-09
  • spring AOP定義AfterThrowing增加處理實例分析

    spring AOP定義AfterThrowing增加處理實例分析

    這篇文章主要介紹了spring AOP定義AfterThrowing增加處理,結合實例形式分析了spring面向切面AOP定義AfterThrowing相關實現(xiàn)步驟與操作技巧,需要的朋友可以參考下
    2020-01-01
  • 15個高級Java多線程面試題及回答

    15個高級Java多線程面試題及回答

    這篇文章主要介紹了15個高級Java多線程面試題及回答,翻譯自國外的一篇文章,這些面試題容易混淆、較難回答,需要的朋友可以參考下吧
    2014-05-05
  • Java設計模式之責任鏈模式詳解

    Java設計模式之責任鏈模式詳解

    客戶端發(fā)出一個請求,鏈上的對象都有機會來處理這一請求,而客戶端不需要知道誰是具體的處理對象。這樣就實現(xiàn)了請求者和接受者之間的解耦,并且在客戶端可以實現(xiàn)動態(tài)的組合職責鏈。使編程更有靈活性
    2022-07-07
  • Java純代碼實現(xiàn)導出pdf

    Java純代碼實現(xiàn)導出pdf

    在項目開發(fā)中,產品的需求越來越奇葩啦,開始文件下載都是下載為excel的,做著做著需求竟然變了,要求能導出pdf,所以本文就來用Java實現(xiàn)導出pdf功能吧
    2023-12-12
  • idea中使用git合并分支實踐

    idea中使用git合并分支實踐

    這篇文章主要介紹了idea中使用git合并分支實踐,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論