gpt4 book ai didi

java - 在for循环中设置数组内容

转载 作者:行者123 更新时间:2023-12-02 02:22:23 25 4
gpt4 key购买 nike

我刚刚研究了数组,但我无法在 for 循环中使用它们,而且我无法理解代码有什么问题以及如何实际让它工作。

import java.util.*;

public class DemoCane {

Scanner sc = new Scanner (System.in);
public static int[] cani;

public static void main (String args []){
setQuantitaCani();
for (int i=0; i<=cani[nrcani].lenght; i++){
Cane cani[i] = new Cane();
cani[i] = Cane.setInfo();
cani[i].getInfo();
}

}

public static void setQuantitaCani(){
System.out.println("Quanti cani vuoi aggiungere?");
int nrcani = sc.nextInt();
cani[] = new int[nrcani];
}
}

我这样编写代码是因为我想从用户那里获得关于他想要输入多少只狗的输入(cani 意味着狗)。然后,对于每只狗,它都会从狗类(在另一个文件中,已编译良好)创建一个新的狗对象,并且用户必须设置他的信息。我应该使用 while 循环吗?

编辑:每个错误都在这一行中:

cani[] = new int[nrcani];

最佳答案

稍微更新了您的代码:

public class DemoCane {

static Scanner sc = new Scanner(System.in);
private static Cane[] cani;

public static void main(String args[]) {
setQuantitaCani();
for (int i = 0; i < cani.length; i++) {
cani[i] = new Cane();
cani[i] = cani[i].setInfo();
cani[i].getInfo();
}

}

public static void setQuantitaCani(){
System.out.println("Quanti cani vuoi aggiungere?");
int nrcani = sc.nextInt();
cani = new Cane[nrcani];
}
}

解释:

  1. 如果要将 Cane 对象添加到数组中,则该数组必须具有该类型(private static Cane[] cani;cani[ ] = new Cane[nrcani];)
  2. 访问数组长度是通过array_variable_name.length完成的。您所做的仅适用于二维数组
  3. 如果您在 main-method 中工作,您的变量也必须是static
  4. 通过 array_variable_name[index] = new Classname(); 向数组添加新对象。您不必执行 Cane cani[i] = new Cane();,因为数组已经是 Cane
  5. 类型
  6. 初始化数组的工作方式如下:Cane[] cani = new Cane[10]。如果您想访问索引,则只需要 [],但在启动时不需要(声明元素数量时除外)
  7. cani[i] = Cane.setInfo(); 我假设您想要访问索引处的 Cane 并设置该对象的信息。由于我们不知道您的 Cane 类实际上是否具有方法 public static void setInfo(),因此我将其更改为 cani[i] = cani[ i].setInfo(); 设置信息
  8. 正如评论中已经指出的,数组是从 0 开始的。这意味着您可以访问的第一个元素位于 cani[0]。因此,您必须小心不要超出界限(0 til (nrcani-1))

关于java - 在for循环中设置数组内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com