java数学。来自数组元素的sqrt
我有两个问题。请在下面找到我的代码:
public class Numbers {
public static void main(String[] args) {
double[] tab = { 9.0, 27, 5, 77 };
System.out.println("array size: " + tab.length);
for (int y = 0; y < tab.length; y++) {
System.out.printf("%d", (int) tab[y]);
System.out.print(" ");
System.out.print(Math.sqrt(y));
System.out.println();
}
// for(double i:tab){
// System.out.println(tab[(int) i]);
// }
}
}
现在呢
1)我的第一个问题是,我的数组中有一些数字tab
,然后在FOR循环中,我想在每一行中显示元素及其平方根。
但是对于第一个元素,我得到0.0作为平方根。为什么?其他结果对我来说也是错误的
我的结果是:
array size: 4
9 0.0
27 1.0
5 1.4142135623730951
77 1.7320508075688772
2)第二个问题是my for each循环的问题。但是当你取消注释它时,它就不起作用了,因为我得到了一个错误。 输出:
array size: 4
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
对于每个循环,我都犯了什么错误? 为什么eclipse显示我询问第9元素
提前感谢您的帮助-感谢您的所有回答:)
# 1 楼答案
问题是您试图从索引中的数组中检索数据, 要改变这一点:
有了这个:
# 2 楼答案
第一个问题: 您使用的不是数组中的元素,而是循环参数:
(这将是正确的代码)
第二个问题: 您使用的是foreach循环,因此不需要使用索引来获取数组元素:
# 3 楼答案
因为你没有打印出元素的平方根,而是打印出索引的平方根。这是:
应该是: