数组初始化,Java

时间:2016-01-09 15:49:47

标签: java

我的任务是编写一个程序,声明一个50个“double”元素的数组“alpha”。初始化数组,使前25个元素等于索引变量的平方,最后25个元素等于索引变量的三倍。输出数组,以便每行打印10个元素。

这是我到目前为止所得到的,它给了我'0.0'的结果,所以我显然做错了。我是编程的新手,并且经常与它挣扎。我所拥有的教科书没有很好地解释(为什么背后的原因,为了理解事情我需要的),我在互联网上寻求帮助,但我对这个问题感到难过并且真的可以使用一些关于如何正确地以正确的格式打印这些数字的建议。我认为模数可能是我需要的,但他们让我感到困惑,我甚至无法解决这个问题,直到我得到它来打印我需要的数字。感谢您提供的任何建议。我非常感激。

public class Arrays {
    public static void main(String[] args) {
        int i;
        double[] alpha = new double[50];

        for(i = 0; i < 25; i++);
        {
            alpha[i] = i * i;
        }
        for(i = 0; i >= 25; i++);
        {
            alpha[i] = 3 * i;
        }
        System.out.print(alpha[i] + "\n");
    }
}

3 个答案:

答案 0 :(得分:1)

几个错误:

  1. 在for语句之后的分号,表示它的空语句,并且不会在循环中执行以下语句。所以删除分号如下:

     for(i = 0; i < 25; i++)
    
  2. 您可以将第二个for循环更正为:

    // you could omit i = 25 as the value of i is already 25
    for(i = 25; i < 50; i++)
    
  3. 要打印Alpha,您需要一个可以打印alpha的循环,如下所示:

    for(i = 0; i < 50; i++) {
        System.out.println(alpha[i]);//println would add new line
     }//if you dont need each number on new line you could use Arrays.toString(alpha)
    

答案 1 :(得分:0)

我还在上大学,不久前我见过Java。大学的解决方案应该是:

class Arrays {
    public static void main(String[] args) {
        double[] alpha = new double[50];

        for(int i = 0; i < alpha.length; i++)
        {
            // between 0 - 24 (first 25 items)
            if(i <= 24) {
                alpha[i] = i * i;
            // if the first if statement is not correct. Java will go to the next if or else if statement and the first will NOT be executed. If the first i bigger or equal to 25 execute this statement.
            }else if(i >= 25) {
                alpha[i] = 3 * i;
            }
            System.out.print("Index: " + i + " value: " + alpha[i] + "\n");
        }
    }
}

您可以测试代码:https://ideone.com/cLm0wy

我的代码和你的代码有什么不同?

  • 在for循环之后,不要使用分号(;)。对于id内的所有代码,使用for和if。 if和for循环中的语句(以及其他循环等)需要在它们后面加一个分号。
  • 您将i定义为变量。你不应该这样做,如果你启动一个for循环,你初始化你在开始时使用的变量。 for循环看起来像这样:

    for(variable declaration and initialization; condition; operation) {
        // code
    }
    
  • 你可以在循环中使用if语句,我假设你已经学过它们了。我检查i是否小于或是24(数组是零索引,它们从零开始)或i是否大于或是25(其余:25到49)。
  • 你不需要两个for循环,只需要一个if语句。

我希望这对你来说更清楚......如果没有,我很乐意进一步帮助你。

我可以向您提供有关计算机科学(编程,网络等)的所有内容:Google很多。问题已经解决了1000多次。这不是一种侮辱,只是我给每个刚开始使用IT /计算机科学的人提示。

祝你好运!

答案 2 :(得分:-1)

好的,我注意到一些事情首先声明你的数组有50个位置。然而,您在技术上无限次地执行插入操作。发生这种情况是因为你为第二组边界设置了没有终点,只有i> = 25.接下来是你可以接受while和while while循环的阶段吗?有些老师不会让你使用他们尚未过去的东西。如果是这样尝试这样的事情来获得你的结果。

public class Arrays
{
public static void main(String[] args)
 {
  int i;
  double[] alpha = new double[50];

  // loop for calculating array values
  for(i = 0; i < 50; i++){
    if(i<=24) {
         alpha[i] = i * i;
       }
    if(i>24){
         alpha[i] = 3 * i;
       }
  }

  //loop for printing the array in segments of 10
  for (int j=0;j<50;j++){
   do{
       System.out.print(alpha[j]);
     }while(j<10);
   System.out.print("\n");
  do{
       System.out.print(alpha[j]);
     }while(j>=10&& j<20);
   System.out.print("\n");
   // left the do while loops incomplete so you could get the general idea
  /*do{
       System.out.print(alpha[j]);
     }while(etc......);
   System.out.print("\n");*/
   }
 }
}