Java 在单个循环中打印字符串和整数
抱歉,如果这是一个模糊的问题,但我查找了很多,并在这里坚持我的代码 我想做一个循环,在一行上打印字符串,在下一行上打印整数,我的代码是:Java 在单个循环中打印字符串和整数,java,Java,抱歉,如果这是一个模糊的问题,但我查找了很多,并在这里坚持我的代码 我想做一个循环,在一行上打印字符串,在下一行上打印整数,我的代码是: public class StudentResult { public static void main(String[] args) { // Creating Student Objects Student student1 = new Student("Bob", 45); Student stud
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语句,这样如果我添加另一个student对象,我只需编辑数组,循环本身就可以正常工作。这里可以使用索引for循环而不是for each循环(假设名称
和标记
数组长度相同
for(int i = 0; i < marks.length; i++) {
System.out.println(names[i]);
System.out.println("The marks are " + marks[i]);
}
for(int i=0;i
在这里,您可以使用索引for循环,而不是for each循环(假设名称和标记的数组长度相同)
for(int i = 0; i < marks.length; i++) {
System.out.println(names[i]);
System.out.println("The marks are " + marks[i]);
}
for(int i=0;i
如果我理解正确,您可以尝试创建一个学生数组:
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());
}
如果我理解正确,你可以试着让一组学生:
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());
}
不使用数组,您可以使用列表
,例如ArrayList
List<Student> students = Arrays.asList(
new Student("Bob", 45),
new Student("John", 70)
);
在这里,您可以添加
或删除
元素,而在第一种情况下,您将得到一个不支持操作异常
然后可以迭代列表
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
}
有关文档,请参阅和。可以使用列表
,例如ArrayList
,而不是使用数组
List<Student> students = Arrays.asList(
new Student("Bob", 45),
new Student("John", 70)
);
在这里,您可以添加
或删除
元素,而在第一种情况下,您将得到一个不支持操作异常
然后可以迭代列表
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
}
有关文档,请参阅和。您可以通过索引对这两个数组进行迭代来访问它们
int length = Math.min(names.length, marks.length);
for (int i=0; i< length; i++) {
System.out.println(names[i] + "\n" + "The marks are " + marks[i]);
}
//If something is left over in any one of the arrays print them here.
int length=Math.min(name.length,marks.length);
for(int i=0;i
您可以在索引的帮助下通过迭代访问这两个数组
int length = Math.min(names.length, marks.length);
for (int i=0; i< length; i++) {
System.out.println(names[i] + "\n" + "The marks are " + marks[i]);
}
//If something is left over in any one of the arrays print them here.
int length=Math.min(name.length,marks.length);
for(int i=0;i
不太清楚你在问什么。我想,你为什么不循环一下学生的列表呢?直接将他们添加到列表中
好吗?请你澄清一下你到底想实现什么?我得到了答案,我想要的是用一个简单的语句替换那些if/else语句,这个语句做了同样的事情,但考虑周到坦率地说,谢谢你的时间。我不太清楚你在问什么。我想,你为什么不循环一下学生
的列表。直接将他们添加到列表
中?请你澄清一下你到底想实现什么?我得到了答案,我想要的是用一个简单的语句替换那些if/else语句同样的事情,但始终如一地,谢谢你的时间,谢谢你这么多,这么简单的解决方案,但我被困了这么久,但无论如何学到了很多。成功了,谢谢你这么多,这么简单的解决方案,但我困了这么久,但无论如何学到了很多。这解决了OP问题,但他的方法可能不好。他应该打印一系列学生们改为使用多个属性数组。是的,我同意@Rcordoval。但我想他可能会得到名称和标记的数组(实际上不是他自己构建的)-但它们是学生
对象的属性。因此,我认为这可以帮助他..你是什么意思?他显然在构造学生并将其转储到数组中。无论如何,这是一个有效的答案。干杯!@Rcordoval:我的意思是有人可以构造数组并通过代码流将其传递给他-出于演示目的,他可能会这样做我在这里添加了它。我想是这样的。可能不是这样:-)谢谢!这解决了OP问题,但他的方法可能不好。他应该打印一个学生数组而不是多个属性数组。是的,我同意@Rcordoval。但我想他可能会得到名称和标记的数组(实际上不是他自己建造的)-但它们是学生
对象的属性。因此,我认为这可以帮助他..你是什么意思?他显然在构造学生并将其转储到数组中。无论如何,这是一个有效的答案。干杯!@Rcordoval:我的意思是有人可以构造数组并通过代码流将其传递给他-出于演示目的,他可能会这样做我把它加在这里了……我想是这样的……情况可能不是这样:-)谢谢!这真是个好主意,谢谢,我一定会记住的。这真是个好主意,谢谢,我一定会记住的。我不知道这个方法,我想我现在必须查一下才能更好地理解它,thanks@AneesUrRahman我用更多信息更新了我的答案。asList
methodreturns是一个不可变列表,因此您可能需要根据需要使用其他内容。有关更多详细信息,请参阅答案。@WilliamBurnham我可以建议您将有关列表不可变性的内容移到数组示例下面(或完全删除它)?基本上与问题无关。我不知道这个方法,我想我现在必须查一下才能更好地理解它,thanks@AneesUrRahman我用更多信息更新了我的答案。asList
方法返回一个不可变的列表,因此您可能需要根据需要使用其他内容。请参阅答案f