我正在努力学习Java中的数组。我有一些代码,其中包括一个Integer数组,可以在10周内上课,课程大小为15.任务是输出每周的出勤百分比。我已经设法创建一个for循环来访问数组中的每个值,我已经完成了我认为正确的做法,将它们转换为double,以便我可以计算出每个值的百分比。尝试输出结果时遇到问题。首先,当试图打印错误时,我还没有初始化。我有我的for循环,如果我把它从for循环中取出,我得到8.0的输出,这不是我想要的。其次,我希望所有结果都编号为1到10,但是println中的+ i +再次对我不起作用,我不知道为什么。有人能告诉我我做错了什么吗?感谢
public class AttendanceTest {
public static void main(String[] args) {
final Integer CLASS_SIZE = 15;
Integer[] attendances = {10, 14, 12, 9, 11, 15, 12, 13, 8, 14};
double attendance=0;
{for(int i=0;i<attendances[i];i++)
attendance=(double) (attendances[i] / 15)*100;
System.out.println(+i+attendance );
}
}
}
答案 0 :(得分:1)
花括号必须在for循环声明之后。此外,您必须将考勤[i]加到括号内,而不是在外面。第三,您的解决方案是将i添加到百分比。你应该在它们之间添加一个空格字符,这样它就不会添加这两个数字。第四,for循环的停止条件应该是当i等于考勤中的元素数量时。
public static void main(String[] args) {
final Integer CLASS_SIZE = 15;
Integer[] attendances = {10, 14, 12, 9, 11, 15, 12, 13, 8, 14};
double attendance;
for (int i = 0; i < attendances.length; i++) {
attendance = ((double) attendances[i] / CLASS_SIZE) * 100;
System.out.println(i + " " + attendance);
}
}
答案 1 :(得分:0)
您正在投射计算结果,但到那时为时已晚。您需要将attendances[i]
转换为double,以便不会使用整数除法。
答案 2 :(得分:0)
由于您只需要输出每个变量的出勤率,您应该将打印件放在for循环中。
public static void main(String[] args) {
final Integer CLASS_SIZE = 15;
Integer[] attendances = {10, 14, 12, 9, 11, 15, 12, 13, 8, 14};
for(int i = 0; i < attendances.length; i++){
System.out.println(((double) attendances[i] / 15) * 100 + "% attendance" );
}
}
您的代码需要注意几点:
你的for循环上的花括号应该在它之后,并且在其中包含什么。像:
for(int i = 0; i&lt; 10; i ++){ //当它循环进入这里时会发生什么 System.out.println(“我现在是”+ i);
}