【问题标题】:Java code 1+ issueJava代码1+问题
【发布时间】:2018-01-26 04:51:03
【问题描述】:

Java 代码有问题。

import java.util.Random;

public class arrayTable {
public static void main (String[] args) {
    System.out.println("Index\t + Value");
    int Array[] = new int[10];

    Random Object = new Random();
    int Values;

    // Assigning random values to each element of array

    for(int i=0; i<Array.length;i++) {
        Values= (1+Object.nextInt(50));
        Array[i] = Values;
    }

    for(int j=0;j<Array.length;j++) {
        System.out.println(j + "\t" + Array[j]);
      }

    }
}

在这里,我用这段代码在对象旁边写了 (1+),因此索引应该从 1 开始,但是当我运行代码时总是从索引 0 开始,我输入 2+ 或3+ 公关什么的。谁能帮忙指出代码的问题。

提前谢谢你。

【问题讨论】:

  • 注意 Java 命名约定。类名以大写字母开头,变量名以小写字母开头
  • 有什么问题?您存储在数组中的值都大于或等于 1。
  • 什么意思所以索引应该从1开始,?索引是 i 并按照循环中定义的 0 开始
  • 另请注意:i.imgur.com/U6hU1Ac.jpg
  • 我很清楚,所有数组都从 0 开始,哈哈,但我希望索引从 1 开始计数,我相信我在错误的地方添加了 1+。而且我实际上不知道类应该总是以大写字母开头,反之亦然?

标签: java arrays random int


【解决方案1】:

我在对象旁边写了 (1+),所以索引应该从 1 开始

您在 value 而不是 index 旁边写了 1+!

那么,你所做的是:

array[0] = 50 + 1;

代替:

array[0 + 1] = 50;

如果你想从索引 1 开始,你应该在这里写:

Array[i + 1] = Values;

但是,当您在 for 循环中时,您可能会遇到 ArrayIndexOutOfBoundsException,因此,更好的办法是:

for(int i=1; i<Array.length;i++) { //Look the "i" was initialized with 1 and not with 0.

记住:数组从0索引开始

如果你想“跳过”第一个元素,那么上面对for 循环的修改应该可以工作,但是如果你想让它从1 运行到10,那么这是一个坏主意,因为它应该从09

您还应该注意遵循 Java 命名约定:

  • firstWordLowerCaseVariable
  • firstWordLowerCaseMethod()
  • FirstWordUpperCaseClass
  • ALL_WORDS_UPPER_CASE_CONSTANT

并始终如一地使用它们,这将使您和我们的代码更易于阅读和理解。

另外,尽量不要将你的类/变量命名为 Java 类名:


但是当我键入 Array [i + 1] 时,它仍然从索引 0 打印出来,例如,如果我希望它从索引 1 开始,那么有没有办法做到这一点?

我认为您没有将 for(int j=0;j&lt;Array.length;j++) { 循环更改为从 1 开始

要掷骰子,我会:

  • 创建有 6 个槽的数组(从 0 开始)
  • 如下所示填充 (1 - 6)(在 for 循环内):

    dice[0] = 1;
    dice[1] = 2;
    ...
    dice[5] = 6;
    
    //Example of for loop
    for (int i = 0; i < dice.length; i++) {
        dice[i] = i + 1;
    }
    
  • 获取一个名为random的随机数(0-5之间)

  • 获取位置random的数组值

例如:

random = 3;
//dice[random] = 4;
System.out.println(dice[random]);

【讨论】:

  • 如果我们在堆砌,我们不要将对象命名为“对象”甚至“对象”。
  • 但是当我输入 Array [i + 1] 时,它仍然从索引 0 打印出来,例如,如果我在哪里制作我的骰子,我希望它从索引 1 开始,有没有办法这样做?
  • @Frakcool 我晚上被 Java 中的 Object 类保持清醒。让我发疯。
  • @nicomp 保重,它​​告诉我今晚会困扰你!
猜你喜欢
  • 2012-04-27
  • 1970-01-01
  • 2017-01-28
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多