0

因此,任务是编写一个使用 if 语句声明类型java program为 alpha 的数组的 a 。初始化数组,使第一个元素等于索引变量的平方,最后 25 个元素等于索引变量的三倍。50 elementsdouble25

这是我的代码:

   int i=0;      
    int count=0;
    double[] alpha= new double [50];

    for (i=0; i<alpha.length; i++)
    { 
    if (alpha.length<25)
    alpha[i]= i*i;

    System.out.print(alpha[i] + " ");

    if (alpha.length>=25)
    alpha[i]= 3*i;      

     System.out.print(alpha[i] + " ");
        count++;
        if (count==10){
        System.out.println("\n");
        count=0;

问题是我可以让代码的最后一部分工作

 if (alpha.length>=25) alpha[i]= 3*i

但代码的第一部分不起作用。我得到的答案是:

0.0 0.0 0.0 3.0 0.0 6.0 0.0 9.0 0.0 12.0 0.0 15.0 0.0 18.0 0.0 21.0 0.0 24.0 0.0 27.0 0.0 30.0 0.0 33.0 0.0 36.0 0.0 39.0 0.0 42.0 0.0 45.0 0.0 48.0 0.0 51.0 0.0 54.0 0.0 57.0 0.0 60.0 0.0 63.0 0.0 66.0 0.0 69.0 0.0 72.0 0.0.

任何人都可以看到有什么问题吗?

4

4 回答 4

2

alpha.length 将始终大于 25。您需要比较 i 以查看它是小于还是大于 25。

于 2013-04-03T04:53:09.813 回答
1

FOR 迭代中的 Alpha 长度不变。你必须比较 i 变量! 对于 (i=0; 我

System.out.print(alpha[i] + " ");

if (i>=25)
alpha[i]= 3*i;      

 System.out.print(alpha[i] + " ");
    count++;
    if (count==10){
    System.out.println("\n");
    count=0;
于 2013-04-03T04:52:34.017 回答
1

那是因为alpha.length>=25总是TRUE并且alpha.length < 25总是FALSE,因为你alpha.length是 50。

尝试使用index i进行比较。

if (i < 25)
 alpha[i] = i * i;
....
....
if (i >= 25)
 alpha[i] = 3 * i;
于 2013-04-03T04:55:13.340 回答
0

alpha.length是数组的长度,它总是等于 50 。

改变你的状况

if (alpha.length<25)

if (i<25)

同样改变

如果 (alpha.length>=25)

如果 (i>=25)

于 2013-04-03T04:54:42.217 回答