对不起,如果这是一个模糊的问题,但我进行了很多查找,并确实在这里停留在我的代码上。
我想做一个循环,在一行上打印字符串,在下一行上打印整数,我的代码是:
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 语句,因此,如果我添加另一个学生对象,则只需要编辑我的数组即可,并且循环本身可以正常工作
答案 0 :(得分:5)
您可以在此处为每个循环使用索引的循环(而不是为每个循环使用(这是假定names
和marks
数组相同的长度。
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
是不可变的,这意味着即使它具有add
和remove
方法(因为它是List
),它的长度是固定的,因此,如果您需要一个可变列表,则需要做些不同的操作(像这样)
List<Student> students = new ArrayList<>();
students.add(new Student("Bob", 45));
students.add(new Student("John", 70));
在这里,您可以使用add
或remove
元素,而在第一种情况下,您将获得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
}
答案 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]*";