switch不能用布尔类型,本人刚刚自学Java,我写的代码如下,求高手指点。
publicclassUpAndLower{publicstaticvoidmain(String[]args){Stringstr="Wearestudents";St...
public class UpAndLower {
public static void main(String[] args) {
String str="We are students";
String str1=str.substring(0,3);
String str2=str.substring(4,8);
boolean b=(str1.equalsIgnoreCase(str2));
switch(b){
case true:
System.out.println("两子串相同");
break;
case false:
System.out.println("两子串并不相同");
break;
default:
System.out.println("对不起,我不知道");
}
}
} 展开
public static void main(String[] args) {
String str="We are students";
String str1=str.substring(0,3);
String str2=str.substring(4,8);
boolean b=(str1.equalsIgnoreCase(str2));
switch(b){
case true:
System.out.println("两子串相同");
break;
case false:
System.out.println("两子串并不相同");
break;
default:
System.out.println("对不起,我不知道");
}
}
} 展开
2015-07-15 · 知道合伙人软件行家
关注
展开全部
switch后面的括号里面只能放int类型的值,注意是只能放int类型,但是放byte,short,char类型的也可以,是因为byte,short,shar可以自动提升(自动类型转换)为int,不是说就可以放它们,说白了,你放的byte,short,shar类型,然后他们会自动转换为int类型(宽化,自动转换并且安全),其实最后放的还是int类型!
原理:Java中8种基本数据类型,boolean类型不参与转换,任何类型不能转换为boolean型,boolean也不能转换为其他类型,所以剩下7种,按照他们的表数范围,(也就是能表示的最大的数的大小,比如char是0到65535,byte是-128到正127)从小到大,排序,依次为:byte、short、char、int、long、float、double
原理:Java中8种基本数据类型,boolean类型不参与转换,任何类型不能转换为boolean型,boolean也不能转换为其他类型,所以剩下7种,按照他们的表数范围,(也就是能表示的最大的数的大小,比如char是0到65535,byte是-128到正127)从小到大,排序,依次为:byte、short、char、int、long、float、double
追问
谢谢了,那我应该用if else就可以了吗,为什么我用了if之后用else老是编译不过去?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询