黑马程序员技术交流社区
标题:
异常的一个程序,不知道杂错了
[打印本页]
作者:
廉伟杰
时间:
2014-2-5 17:40
标题:
异常的一个程序,不知道杂错了
本帖最后由 廉伟杰 于 2014-2-7 19:50 编辑
public class ThrowExceptionDemo {
public static void reg(String name) {
//表示已经注册过的名字
String[] names = {"Will","Lucy","Jim","SpringBrother"};
for (String n : names) {
if(n.equals(name)){
throw new RuntimeException(name + "被使用了");
}else{
System.out.println(name +"可以使用");
break;
}
}
}
public static void main(String[] args) {
try {
reg("Lucy");
} catch (Exception e) {
String msg = e.getMessage();
System.out.println(msg);
}
}
}
复制代码
当时Will是答案是被使用,但是当是Lucy是不知道为啥显示可以被使用
作者:
↑↓ME→←
时间:
2014-2-5 17:52
感觉你这个程序这样写比较对
public class ThrowExceptionDemo {
public static void reg(String name) {
//表示已经注册过的名字
String[] names = {"Will","Lucy","Jim","SpringBrother"};
for (String n : names) {
if(n.equals(name)){
throw new RuntimeException(name + "被使用了");
}
}
throw new RuntimeException(name+"可以使用了");
}
public static void main(String[] args) {
try {
reg("sss");
} catch (Exception e) {
String msg = e.getMessage();
System.out.println(msg);
}
}
}
复制代码
作者:
周昭民
时间:
2014-2-5 18:40
楼主,不止是第二个Lucy有问题,包括后面的Jim,SpringBrother都是有问题的,因为你这个程序的for循环导致的,假设你要判断的是Lucy,在if(n.equals(name)这里判断的时候,把遍历的第一个数组元素拿出来,就是让Will和Lucy判断,结果为false,所以执行else的语句!
而你写的else这段代码输出了Lucy可以被使用,并break了!明白了吗
作者:
周昭民
时间:
2014-2-5 18:45
public class Test{
public static void reg(String name) {
//表示已经注册过的名字
String[] names = {"Will","Lucy","Jim","SpringBrother"};
for (String n : names) {
if(n.equals(name)){
throw new RuntimeException(name + "被使用了");
}
}
System.out.println(name +"可以使用");
}
public static void main(String[] args) {
reg("Lucy");
}
}
复制代码
这样改动就行了,另外楼主。你的题是练习题来着吗?能不能共享一套练习题给我做做,求一份基础练习题
作者:
廉伟杰
时间:
2014-2-6 13:55
周昭民 发表于 2014-2-5 18:40
楼主,不止是第二个Lucy有问题,包括后面的Jim,SpringBrother都是有问题的,因为你这个程序的for循环导致 ...
知道咋回事了的,谢了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2