黑马程序员技术交流社区
标题:
遍历较长的数组不能用for?
[打印本页]
作者:
小城。
时间:
2014-9-27 15:15
标题:
遍历较长的数组不能用for?
遍历长度为128的数组使用for(short i = 0;i<arr.length;i++);有错么,为什么在技术自测里说是错的?这是我在别的论坛看见的,我也不知道错在哪?求大神解释
作者:
ζ_____________
时间:
2014-9-27 15:23
本帖最后由 ζ_____________ 于 2014-9-27 15:28 编辑
可否把代码都贴出来呢?
class ArrayTest
{
public static void main(String[] args)
{
short[] arr = new short[128]; //创建一个长度为128的 shot型数组.(int型也可以)
for (short i = 0;i<arr.length ;i++ ) //利用for循环遍历数组
{
arr[i] = i; //将 i 的值对应的赋到数组中的脚标,比如: arr[0] = 0 ; arr[1] = 1;
System.out.println(arr[i]); //将arr[i]的值打印到控制台上.
}
}
}
复制代码
作者:
ζ_____________
时间:
2014-9-27 15:27
不知道你说的是不是这种情况。
class ArrayTest
{
public static void main(String[] args)
{
short[] arr = new short[128];
for (int i = 0;i<arr.length ;i++ )
{
arr[i] = i; //此时会出现编译时错误,因为i是int型的, arr[]是 short型的, 这样直接赋值的话会损失精度.
System.out.println(arr[i]);
}
}
}
复制代码
作者:
梦里听传说
时间:
2014-9-27 16:02
类型转换问题 楼上给你说了,我都不献丑了
作者:
fantacyleo
时间:
2014-9-28 00:43
ζ_____________ 发表于 2014-9-27 15:23
可否把代码都贴出来呢?
楼主说的应该是这种情况。但数组长度不是128,而是32768的时候会挂掉。因为超过了short的表示范围。如果要128就挂掉,可以改用byte i
作者:
袁枭飞
时间:
2014-9-28 10:35
数组类型定义错误,其他没有问题
作者:
希筱诺
时间:
2014-9-28 11:04
呵呵,仔细哦
作者:
小城。
时间:
2014-9-28 14:14
ζ_____________ 发表于 2014-9-27 15:27
不知道你说的是不是这种情况。
厉害。。
作者:
郑泽霖
时间:
2014-9-28 15:16
i是int型变量怎么赋值给short..
应该做arr[i]=(short)i;
作者:
clevergump
时间:
2014-9-28 15:21
对的,需要强制类型转换
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2