在单个循环中同时打印字符串和整数

时间:2018-07-02 06:05:07

标签: java

对不起,如果这是一个模糊的问题,但我进行了很多查找,并确实在这里停留在我的代码上。

我想做一个循环,在一行上打印字符串,在下一行上打印整数,我的代码是:

public class StudentResult {
    public static void main(String[] args) {
        // Creating Student Objects
        Student student1 = new Student("Bob", 45);
        Student student2 = new Student("John", 70);

        // Making Arrays for students and marks
        String[] names = {student1.getStudentName(), student2.getStudentName()};
        int[] marks = { student1.getStudentMarks(), student2.getStudentMarks() };

        // Using for loop to print both names and marks

        for (int mark : marks) {
            // THIS IS THE PART I AM STUCK WITH
            if (mark == student1.getStudentMarks()) System.out.println(names[0]);
            else if (mark == student2.getStudentMarks()) System.out.println(names[1]);

            System.out.println("The marks are " + mark);
             /* Output is :
                Bob
                The marks are 45
                John 
                The marks are 70
             */
        }
    }
}

在for循环之后是否有任何方法可以编辑 If / Else 语句,因此,如果我添加另一个学生对象,则只需要编辑我的数组即可,并且循环本身可以正常工作

5 个答案:

答案 0 :(得分:5)

您可以在此处为每个循环使用索引的循环(而不是为每个循环使用(这是假定namesmarks数组相同的长度。

for(int i = 0; i < marks.length; i++) {
    System.out.println(names[i]);
    System.out.println("The marks are " + marks[i]);
}

答案 1 :(得分:2)

如果我对您的理解正确,则可以尝试招募一批学生:

Student student1 = new Student("Bob", 45);
Student student2 = new Student("John", 70);

Student[] students = { student1, student2 };

for (Student student : students) {
    System.out.println(student.getStudentName());
    System.out.println("The marks are " + getStudentMarks());
}

答案 2 :(得分:1)

您可以使用List之类的ArrayList来代替数组。例如

List<Student> students = Arrays.asList(
    new Student("Bob", 45),
    new Student("John", 70)
);

此处的ArrayList方法返回的asList不可变的,这意味着即使它具有addremove方法(因为它是List),它的长度是固定的,因此,如果您需要一个可变列表,则需要做些不同的操作(像这样)

List<Student> students = new ArrayList<>();
students.add(new Student("Bob", 45));
students.add(new Student("John", 70));

在这里,您可以使用addremove元素,而在第一种情况下,您将获得UnsupportedOperationException

然后您可以迭代List

for (Student s : students) {
    System.out.println(s.getStudentName());
    System.out.println("The marks are " + s.getStudentMarks());
}

或者,您可以只使用一个数组:

Student[] students = new Student[] { 
    new Student("Bob", 45),
    new Student("John", 70)
};

for (Student s : students) {
    // same as above
}

有关文档,请参见herehere

答案 3 :(得分:0)

130101.34764204 2013-01-01 08:20:36.272256
130101.34764606 2013-01-01 08:20:36.619585
130101.34765007 2013-01-01 08:20:36.966048
180702.4 2018-07-02 09:35:59.999999

答案 4 :(得分:0)

您可以通过在索引的帮助下对其进行迭代来访问这两个数组。

PatternArticleNumber = $"^(\\+)[0-9]*";