java - 有没有办法在 Java 中对 if 语句进行分组
问题描述
我正在编写一个函数来生成一个数组,但是我必须应用很多会影响输出的 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;
有没有办法对我的 if 语句进行分组,这样如果我的参数在要求的范围内,我会得到一个结果,如果不是,我会得到'null'。(还有一些 if 语句,但这可以理解)。
解决方案
你所有的循环都做同样的事情,所以一个if
包含所有条件的单个or
应该做。像,
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;
}
推荐阅读
- javascript - 离开 iPhone 上的 Chrome 选项卡时,Opentok stream.hasAudio 为假
- r - 在R中使用带有折叠的粘贴时如何创建引号
- python - 绘制多个模型成本
- javascript - 在 React 中显示复选框的值
- antlr4 - 至少一个 Antlr 规则可选部分
- javascript - 如何使用 JS/jQuery 通过 PHP 代理向 API 发送请求
- laravel - 使用 sanctum 的 SPA 身份验证失败,并显示以下错误消息:“未经身份验证”。
- java - 期待 IDENT,找到 ':'
- python - 在 Jupyter 砍属性
- javascript - 单击图库中的缩略图时显示 Swiper 滑块