扫描仪和ArrayList与字母

时间:2018-02-20 21:09:27

标签: java arraylist

我想声明一个名为“courses”的arrayList,但我的代码中有问题。我还想要打印笔记和课程。

ArrayList<Integer> listNotes = new ArrayList();
ArrayList<String> listCourses = new ArrayList();

int notes;
String[] courses = {"Science", "History", "English"};

 for(int i=0; i<5;i++){
   //System.out.print((i+1) + " note(s) : ");
   System.out.print((courses[i]) + " Note : ");
   notes = INPUT.nextInt();
   listNotes.add(notes);
 }

 System.out.print("Display : " );

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

youassassin是正确的,你的问题是你的for循环迭代次数过多,否则你的代码正在做它应该做的事情。

无论何时迭代数组,最安全的方法是在终止条件下使用它的长度。

for(int i=0; i < courses.length; i++) {
  //System.out.print((i+1) + " note(s) : ");
  System.out.print((courses[i]) + " Note : ");
  notes = INPUT.nextInt();
  listNotes.add(notes);
}

如果您处理不同大小的数组或处理正在更改的数组,此方法可为您提供优势。例如,如果要扩展course数组,则不必调整循环必须执行的迭代次数,因为循环本身将查找数组的大小并为每个数组元素进行一次迭代。

答案 1 :(得分:0)

    ArrayList<Integer> listNotes = new ArrayList(); ArrayList<String> listCourses = new ArrayList(); 
int notes; 
String[] courses = {"Science", "History", "English"}; 
    Scanner input = new Scanner(System.in);
    for(int i=0; i<courses.length;i++){
 //System.out.print((i+1) + " note(s) : "); System.out.print((courses[i]) + " Note :"); 
notes = input.nextInt(); listNotes.add(notes); } System.out.print("Display : " );

答案 2 :(得分:0)

这是解决方案。

public class Main {

    public static void main(String[] args) {
        Scanner INPUT = new Scanner(System.in);

        ArrayList<Integer> listNote = new ArrayList();

        int note = 0;
        String[] cours = {"Math", "Geo", "Os"};
        double somme = 0;

        for(int i = 0; i<cours.length;i++){
            System.out.print(cours[i] + " : " );
            note = INPUT.nextInt();
            listNote.add(note);
            somme = somme + note;
        }

        //System.out.print("La note est de " + somme);
        double moyenne = somme / 3;
        System.out.println("Résumé");

        for(int i = 0; i<cours.length;i++){
            System.out.println(cours[i] + " " +  listNote.get(i));
        }

        System.out.print("moyenne = " + moyenne);
    }
}

答案 3 :(得分:0)

我想为您提供一个使用 HashMap 的替代解决方案:

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input;
        Map<String, String> courses = new HashMap<>();
        //courses.put("add your course here","add your note here");
        courses.put("science", "my notes my notes on Science");
        courses.put("history", "my notes on History");
        courses.put("english", "my notes on English");

        while (true) {
            System.out.println("Which note would you like to check out?");
            input = scanner.nextLine().toLowerCase();

            if (courses.keySet().contains(input))
                System.out.println("Found notes on " + input + ": " + courses.get(input));
            else
                System.out.println("Couldn't find notes on " + input);
            System.out.println("Another search? (Y/N)");
            input = scanner.nextLine().toLowerCase();
            if (input.equals("n"))
                break;
        }
    }
}