黑马程序员技术交流社区

标题: 来人帮忙解答 [打印本页]

作者: 走遍世界找寻你    时间: 2013-11-20 23:08
标题: 来人帮忙解答
import itcast.cm.bean.Student;

import java.util.Comparator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;


public class Demo6 {
        public static void main(String[] args) {
                Set<Student> set = new TreeSet<>(new Comparator<Student>() {
                        public int compare(Student s1, Student s2){
                                int num = s1.getSum()- s2.getSum();
                                return num == 0 ? 1 : num;
                        }
                });
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入信息:");
                while(true) {
                        String line = sc.nextLine();
                        if("quit".equals(line));
                                break;
                        String[] arr = line.split(",");
                        set.add(new Student(arr[0], Integer.parseInt(arr[1]), Integer.parseInt(arr[2]),
                                        Integer.parseInt(arr[3])));
                }
                System.out.println("请输入学生信息:");
                for (Student student : set) {
                        System.out.println(student);
                }
        }
}
第23行有什么错误?为什么eclipse也没有提示.


作者: hurryup    时间: 2013-11-20 23:25
给出错误提示啊?没有提示怎么知道什么错误
作者: qw无语    时间: 2013-11-20 23:30
   if("quit".equals(line));
                                break;
                        String[] arr = line.split(",");
当我删除其他所有代码时候
我发现你的if()后面有个;
这样break;100/100会运行
break;后面不能加代码的,因为肯定运行不到。所以报错
去掉if()后面的;就可以了
作者: ariesy    时间: 2013-11-21 20:04
break直接跳出循环了,循环里后边代码不会执行。把break后面的代码加到break前面应该就可以执行了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2