在java中switch语句中的表达式为什么不可以是float型?

Python015

在java中switch语句中的表达式为什么不可以是float型?,第1张

这个原因比较直接,因为所有编程语言都会有浮点误差的存在。如果switch支持float那么case里面 1.0f可能会被判断为等于1.0000000001或者0.9999999998。这样写出来的逻辑是不严的。而且这种bug很难查。

switch 进行一次条件判断后直接执行到程序的条件语句.

if...else 有几种条件,就得判断多少次. //可能这就是所说的,效率不同的根源所在吧

if...else可以进行条件范围的判断,switch只能进行具体数值的的判断

eg:

if(a>10&a<20){

//程序代码

}elseif(a<=20&a>30){

//程序代码

}

完成上面的代码对于switch来说,就是很麻烦的事情了

switch(number){

case 1:

//程序代码

break

case 2:

//程序代码

break

}

实现上面的功能用switch效率就会更高些

在if语句中当判断结果为true也就时,就会进入到相应的if(或eleseif)中执行程序代码。然后跳出if...else 语句块执行if后面的程序代码,而switch则是当找到某一个case与判断条件一致时,进入到相应的case中执行代码,并查看是否该case中是否有break语句,如果有break则跳出switch,转到后面的程序代码执行,如果没有则会继续执行下面的case语句中的程序代码,直到遇到break或者switch完成,才转入到switch下面的代码进行执行

总结来说:在确切知道条件结果,并且结果有限下的条件下可以使用switch,在不能确切表示结果的情况下最好用if...else,在使用switch时候一定要注意break的使用。切记!切记!!