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

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

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

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

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

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

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

在這里插入圖片描述

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

先說一下結(jié)論:

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

下面是對(duì)每個(gè)數(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;	
		}
	}
} 
//括號(hào)內(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;	
		}
	}
} 
//括號(hào)內(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;	
		}
	}
} 
//編譯時(shí)報(bào)錯(cuò)了,說明 long 不行

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

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

在這里插入圖片描述

再對(duì) long 探究一下,我在括號(hào)內(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;	
		}
	}
} 

報(bào)錯(cuò)情況和 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)過評(píng)論區(qū)ycxy_ZHT的補(bǔ)充:enum類型也是可以的

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

浮點(diǎn)型

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

字符串

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    全面解析SpringBoot配置文件

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

    spring AOP定義AfterThrowing增加處理實(shí)例分析

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

    15個(gè)高級(jí)Java多線程面試題及回答

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

    Java設(shè)計(jì)模式之責(zé)任鏈模式詳解

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

    Java純代碼實(shí)現(xiàn)導(dǎo)出pdf

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

    idea中使用git合并分支實(shí)踐

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

最新評(píng)論