gpt4 book ai didi

java - 在java程序中使用方法

转载 作者:行者123 更新时间:2023-12-01 18:43:27 24 4
gpt4 key购买 nike

在将程序划分为方法时(特别是主方法和执行所有计算的另一个方法等),我遇到了麻烦。我不确定划分现有代码以创建新方法的正确方法。我的程序也写入文件。

当我编译代码时,我收到一条错误消息

File: F:\COMPSCI 12\java1.java [line: 37] Error: F:\COMPSCI 12\java1.java:37: missing return statement

但我已经有一个返回声明。

我是否正确使用了这些方法?或者出了什么问题?谢谢

没有方法的原始代码

    import java.io.*;

public class java1
{
public static void main (String [] args) throws IOException
{
//int variables are declared
int numpoints = 100, dimension = 2, length = 100;//numpoints is set to 100, dimension is set to 2, length is set to 100

PrintWriter fileOut = new PrintWriter (new FileWriter ("arrayNumPoints.txt"));

//arays are declared/initialized
double [] lengthscale = new double [dimension];
double [][] locations = new double [numpoints][dimension];

for (int a = 0; a < dimension; a++){//for loop runs while a is less than dimension
lengthscale[a] = length;//stores array
}//end for loop

for (int x=0; x < numpoints; x++){//for loop runs while x is less than numpoints
for (int y=0; y < dimension; y++){//nested for loop runs while y is less than dimension
locations [x][y]= (2 * Math.random() - 1) * lengthscale[y];//creates the range and choses random point within it

fileOut.println( locations[x][y] + ", ");//prints out coordinate

}//end nested for loop
}//end for loop

fileOut.close ();
}//end main method
}//end cass

相同的代码但使用方法

 import java.io.*;

public class J4_2_MultiDimensionalArray7
{
public static void main (String [] args) throws IOException
{
int numpoints = 100, dimension = 2, length = 100;//numpoints is set to 100, dimension is set to 2, length is set to 100

//arrays are initializewd and declared
double [] lengthscale = new double [dimension];
double [][] locations = new double [numpoints][dimension];

PrintWriter fileOut = new PrintWriter (new FileWriter ("arrayNumPoints.txt"));


for(int m=0; m <length; m++){//for loop
fileOut.println(java.util.Arrays.toString(locations[m]) + ", ");
}
}//end main

public static Double writefile(Double locations[][], Double lengthscale[], int dimension, int numpoints, Double length)throws IOException
{


for (int a = 0; a < dimension; a++){//for loop runs while a is less than dimension
lengthscale[a] = length;//stores array
}//end for loop

for (int x=0; x < numpoints; x++){//for loop runs while x is less than numpoints
for (int y=0; y < dimension; y++){//nested for loop runs while y is less than dimension
locations [x][y]= (2 * Math.random() - 1) * lengthscale[y];//creates the range and choses random point within it

return locations[x][y];//returns the value of locations
}//end nested for loop

}//end for loop

fileOut.close ();//close file
}//end writefile methos
}//end cass

最佳答案

假设numpoints == 0。您的代码会到达 return 语句吗?

在另一种情况下,如果您的函数确实返回,fileOut.close();会被调用吗?

Java 认识到存在一种可能无法到达 return 语句的情况,并且会表现得好像您没有这种情况一样。要解决此问题,您应该在函数末尾有一个“默认”返回语句,以处理未进入循环的边缘情况。

Im not sure on the proper way to divide up my existing code to create a new method.

这实际上取决于您以及代码的作用,但有一些指导原则:

  • 方法太长难以理解?将其分为几种方法。
  • 您是否在编写“重复代码”?也许这应该放在一个方法中。
  • 像写入文件这样的事情是一个离散的操作单元。换句话说,与程序其余部分的逻辑分开。因此应该将其分离为自己的方法。
  • 等等

关于java - 在java程序中使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18968589/

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