gpt4 book ai didi

java - 尝试阻止循环无限循环,但也避免每次运行时出现 "break"

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

我有一个循环,在程序启动时读取文本文件中的行数,然后根据行数,将那么多对象存储到新的 (Vehicle[]) 数组中(最多 4 个)。

public boolean addVehicle(Vehicle[] Honda) throws FileNotFoundException
{
Scanner reader = new Scanner(file);
String strLine = "";

if(canAddVehicle() == true)
{

for(int i = 0; i < vehicles.length;i++)
{
System.out.println("This file is: " + file);
int counter = 0;

if(vehicles[i] == null)
{
try{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream(this.file);

// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));

//Read File Line By Line
while ((strLine = br.readLine()) != null) {

//Declare objects inside the array.
Honda[counter] = new Vehicle();
Honda[counter].readRecord(reader);
vehicles[counter] = Honda[counter];
counter++;

}
strLine = "";

//Close the input stream and scanner
reader.close();
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
break;
}
}
return true;
}

我遇到问题的部分是这一行:

if(vehicles[i] == null)

程序启动后,用户可以选择将新车辆添加到阵列中。如果逐行查看代码,您可以看到它从 i = 0 开始,假设程序第一次运行时发现了 2 行值,因此它在数组中存储了 2 个对象。取值 0 和 1。这意味着当用户添加新车辆时,它将跳过 if(vehicles[i] == null),因为 Spot [0] 不为 null,它包含从头开始的值程序的内容。

然后它会导致 break; 并将您踢出该方法,而无需返回 for 循环来检查数组中是否存在任何其他空值。我在这里能做什么?

最佳答案

有两件事,A。将中断切换为继续,并将中断放置在您想要的正确位置。

b.如果你完成使用它,你应该关闭你的文件流,因为当你打开一个 fStream 时它“保持文件打开”并且在关闭 fStream 之前不可用

关于java - 尝试阻止循环无限循环,但也避免每次运行时出现 "break",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8413084/

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