假如程序进入if条件里,然后再switch里面没有找到对应的(虽然你的if条件能判断它一定会在中间,但是程序在编译时并不知道),所以编译时会以进入if条件但是在swith中没有找到对应的值,而没有return,此时不会进入else语句块,也就是说整个方法没有返回值,但是会编译报错咯。当你把else和大括号去掉,肯定可以啊,因为此时的return“错误”是作为这个方法的一个返回值的。
解决方案 »
- 这样的题目你会编吗,你会改我的错吗
- 关于新浪微博登录问题
- 用dom4j生成xml文件,解析特殊字符的时候出错了,咋办 啊
- 一个struts一个Hibernate问题 !!!
- 怎样用print(??)打开显示c:/nice.jpg图片啊???????????
- 关于位移的问题,解惑马上给分!!!
- 我怎么判断一个String中都是数字
- dont_cry,感谢你对前面问题的回答,请来领分,他人莫如,以便删除
- 关于jb生成代码的问题
- 各位大虾有 谁安装了linux 下的jdk 1.3.1 ,我下栽的得到的为 .bin 文件 不知道怎么办,时间紧, 救我啊!!!!!!!!
- 急!急!急!面试时遇到几个算法题,求解
- java.lang.NoClassDefFoundError 求解决
判断时,如果if(条件1){}else{},条件1判断后直接跳出if,else而不会去看else?直接去看语句后面?
不好意思那个地方打错,上面是string的,我只是想知道他是如何检查这个语句的返回值的
switch (weekNumber) {
case 1:
return "星期一";
//2-6略
case 7:
return "星期日";
default:
return "错误";
}
}
判断时,如果if(条件1){}else{},条件1判断后直接跳出if,else而不会去看else?直接去看语句后面?
我没有看懂你这句话的意思。当你没有运行时,java编译时,会检查你的语法等。它并不知道你的if条件里面能不能一定得到return,所以就会报编译错误。因为你的switch是完全有可能得不到返回值的。当你执行了if块,else块肯定就不执行了,此时就没有返回值啊