有没有一种方法可以在Java中对if语句进行分组

有没有一种方法可以在Java中对if语句进行分组,java,if-statement,composite,Java,If Statement,Composite,我正在编写一个函数来生成一个数组,但是我必须应用大量的if语句来影响输出 我试着把它们列出来,但我认为这会影响我的输出,看起来也很麻烦 static double [] solve (equation b, int k) { double [] a = null; if (b.c > 1) { a = new double[k]; for (int i = 0; i < k; i++) { b.x0 = (b.c*b.x0)/(b

我正在编写一个函数来生成一个数组,但是我必须应用大量的if语句来影响输出

我试着把它们列出来,但我认为这会影响我的输出,看起来也很麻烦

static double [] solve (equation b, int k)
{
  double [] a = null;
  if (b.c > 1)
  {   
    a = new double[k];
    for (int i = 0; i < k; i++)
    {
      b.x0 = (b.c*b.x0)/(b.y0) + (b.d*b.x0);
      b.y0 = b.e*(b.x0 + 1)*b.y0;
      a[i] = b.y0;
    }
  } 
  if (b.d > 0)
  {   
    a = new double[k];
    for (int i = 0; i < k; i++)
    {
      b.x0 = (b.c*b.x0)/(b.y0) + (b.d*b.x0);
      b.y0 = b.e*(b.x0 + 1)*b.y0;
      a[i] = b.y0;
    }
  }
  if (1 > b.e || b.e > 0)
  {   
    a = new double[k];
    for (int i = 0; i < k; i++)
    {
      b.x0 = (b.c*b.x0)/(b.y0) + (b.d*b.x0);
      b.y0 = b.e*(b.x0 + 1)*b.y0;
      a[i] = b.y0;
    }
    return a;
static double[]求解(方程b,int k)
{
double[]a=null;
如果(b.c>1)
{   
a=新的双精度[k];
for(int i=0;i0)
{   
a=新的双精度[k];
for(int i=0;ib.e | | b.e>0)
{   
a=新的双精度[k];
for(int i=0;i
是否有一种方法可以对我的if语句进行分组,以便如果我的参数在要求的范围内,我将得到一个结果,如果它们不在要求的范围内,我将得到“null”。(还有一些if语句,但这能让大家明白这一点)。

所有循环做同样的事情,所以一个
if
中的所有条件都应该这样做。比如

static double[] solve(equation b, int k) {
    if (b.c > 1 || b.d > 0 || 1 > b.e || b.e > 0) {
        double[] a = new double[k];
        for (int i = 0; i < k; i++) {
            b.x0 = (b.c * b.x0) / (b.y0) + (b.d * b.x0);
            b.y0 = b.e * (b.x0 + 1) * b.y0;
            a[i] = b.y0;
        }
        return a;
    }
    return null;
}
static double[]求解(方程b,int k){
如果(b.c>1 | | b.d>0 | | 1>b.e | b.e>0){
双精度[]a=新双精度[k];
for(int i=0;i
您的所有循环都做相同的事情,因此一个
if
中的所有条件都应该这样做。例如

static double[] solve(equation b, int k) {
    if (b.c > 1 || b.d > 0 || 1 > b.e || b.e > 0) {
        double[] a = new double[k];
        for (int i = 0; i < k; i++) {
            b.x0 = (b.c * b.x0) / (b.y0) + (b.d * b.x0);
            b.y0 = b.e * (b.x0 + 1) * b.y0;
            a[i] = b.y0;
        }
        return a;
    }
    return null;
}
static double[]求解(方程b,int k){
如果(b.c>1 | | b.d>0 | | 1>b.e | b.e>0){
双精度[]a=新双精度[k];
for(int i=0;i
将您的条件拆分为多个私有方法。

将您的条件拆分为多个私有方法。

为每个if创建一个单独的方法怎么样?请使用正确的缩进重新格式化您的代码以使其可读。顺便说一句,循环体似乎都是一样的-假设这是一个发布错误,请按如下所示进行更正好的。根据实际的不同,建议也可能不同。为每个if创建一个单独的方法怎么样?请使用正确的缩进重新格式化代码以使其可读。顺便说一句,循环体似乎都是一样的-假设这是一个发布错误,请也更正它。具体取决于实际情况不同的建议也可能不同。