打印整数数组java的double结果序列

时间:2018-02-01 17:25:51

标签: java

我正在努力学习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 );
    }
}

}

3 个答案:

答案 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" );
   }
}

您的代码需要注意几点:

  1. 要获取数组的长度,需要使用array.length。
  2. 双变量的转换应该在Integer变量的前面。这是因为当你除以整数时,你会得到一个整数。如果你除以一个整数和一个整数,你将得到一个双后背。
  3. 我宁愿用CLASS_SIZE除以代码中15的硬编码。
  4. 你的for循环上的花括号应该在它之后,并且在其中包含什么。像:

    for(int i = 0; i&lt; 10; i ++){       //当它循环进入这里时会发生什么        System.out.println(“我现在是”+ i);

    }