我刚学过数组,但我无法在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];
答案 0 :(得分:2)
稍微更新了您的代码:
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];
}
}
解释:
Cane
- 对象添加到数组中,则数组必须具有该类型(private static Cane[] cani;
和cani[] = new Cane[nrcani];
)array_variable_name.length
完成。你所做的只是二维数组所需要的main-method
工作,你的变量也必须是static
array_variable_name[index] = new Classname();
向数组中添加新对象。您不必执行Cane cani[i] = new Cane();
,因为该数组已经是Cane
Cane[] cani = new Cane[10]
。如果要访问索引,则只需要[]
,而在启动时则不需要{(除非在声明元素数量时)cani[i] = Cane.setInfo();
我假设您要访问索引处的Cane
并设置该对象的信息。由于我们不知道您的Cane
- 类实际上是否具有方法public static void setInfo()
,因此我将其更改为cani[i] = cani[i].setInfo();
以设置信息cani[0]
。因此,您必须小心不要超过界限(0 til (nrcani-1)
)