Java 我的方法赢了';不要让我在遍历数组时留下for循环
我有一种方法,可以将一辆新车(本田)添加到Java 我的方法赢了';不要让我在遍历数组时留下for循环,java,for-loop,Java,For Loop,我有一种方法,可以将一辆新车(本田)添加到车辆数组中。阵列最多包含4辆车辆 Vehicle[] vehicles = new Vehicle[4]; 如果存在null值,则该方法应将1个新Vehicle对象添加到vehicles数组的末尾。问题是它正在写入数组中的所有null值,而不是只写入1,然后退出for循环 以下是我所拥有的(注意——我需要使用数组而不是ArrayList): public void addVehicle(车辆本田[])抛出FileNotFoundException {
车辆
数组中。阵列最多包含4辆车辆
Vehicle[] vehicles = new Vehicle[4];
如果存在null
值,则该方法应将1个新Vehicle
对象添加到vehicles
数组的末尾。问题是它正在写入数组中的所有null
值,而不是只写入1,然后退出for
循环
以下是我所拥有的(注意——我需要使用数组而不是ArrayList
):
public void addVehicle(车辆本田[])抛出FileNotFoundException
{
布尔值=false;
如果(canAddVehicle()==真)
{
对于(int i=0;i
我设置了found=true
,以确保它在数组中找到第一个null
值后立即离开for循环。。但它似乎不起作用。为什么会这样
编辑:另外,我不允许有任何其他类级别的数据。当您应该使用
&&
时,您正在使用|
:
for(int i = 0; i < vehicles.length && !found; i++)
for(int i=0;i
有关条件运算符的更多信息,请参见
作为一种友好的批评,这对其他开发人员来说不是很容易理解。以下内容更容易理解:
for(int i = 0; i < vehicles.length; i++)
{
if(vehicles[i] == null)
{
Scanner reader = new Scanner(file);
Honda[i] = new Vehicle();
Honda[i].readRecord(reader);
vehicles[i] = Honda[i];
reader.close();
break; //break out of the loop
}
}
for(int i=0;i
而不是for(int i=0;i
使用for(int i=0;i
将or运算符
|
替换为and运算符&&
。基本上,这是看到发现是真的,但我仍然少于车辆。长度,所以循环继续。使用&&
时,两者都必须为true才能运行。谢谢,我不知道您可以在for循环中使用中断
for(int i = 0; i < vehicles.length; i++)
{
if(vehicles[i] == null)
{
Scanner reader = new Scanner(file);
Honda[i] = new Vehicle();
Honda[i].readRecord(reader);
vehicles[i] = Honda[i];
reader.close();
break; //break out of the loop
}
}