java - 根据传入的值获取连续值
问题描述
我正在寻找一种方法来传递一个值并从中获取 3 个值。这意味着如果我传入值 0,则打印输出将为 0 1 2。因此,这是传入的实际值加上接下来的 2 个连续数字。
但这不仅仅是关于连续数字。例如,如果我传入 1,我并不期待 1 2 3。相反,它应该如下所示。
0
传入 so print0 1 2
。现在传入
1
。0 1 2
已经完成了上述调用。因此传入1
将打印3 4 5
.现在传入
2
。0 1 2 3 4 5
已经完成了上述调用。因此传递2
将输出6 7 8
等等。
以下代码按预期工作,但以这种方式写出来有点愚蠢,而且传入的值是由外部因素决定的,我事先不会知道。
但是如果传入的值是示例 3,算法应该计算出
已通过 3 的 3 倍数(索引 0 - 8)。
因此,传入 3 将意味着打印 9、10、11。
以下代码执行上述说明。但不可扩展因此寻找某种循环算法。
class App {
public static void main(String[] args) {
App app = new App();
app.printIndex(0); // idea is to print the index being passed in and the next 2 numbers, so 0 1 2
app.printIndex(1); // 3 4 5
app.printIndex(2); // 6 7 8
app.printIndex(3); // 9 10 11
}
int getIndex(int i) {
if(i == 0) return i;
if(i == 1) return 3;
if(i == 2) return 6;
if(i == 3) return 9;
return 0;
}
void printIndex(int i) {
System.out.println(getIndex(i));
System.out.println(getIndex(i) + 1);
System.out.println(getIndex(i) + 2);
}
}
解决方案
int getIndex(int i) {
return i*3;
}
您的 getIndex 方法只需返回 i*3 即可获取每第三个数字。如果您只是替换它,您的程序应该可以工作。如果您将方法getIndex()
编辑printIndex()
为
void printIndex(int i) {
System.out.println(i*3+"");
System.out.println(i*3 + 1);
System.out.println(i*3 + 2);
}
推荐阅读
- javascript - 如何在 Javascript Cordova iOS 中继续循环之前等待回调结果?
- testng - TestNG 中的硒化物分析器
- javascript - 我想为 JavaScript 对象中的某些值创建公共键
- c# - 如何在不需要引用的情况下获取 dll 中的类列表?c# 反射
- mongodb - 为什么查找集合时 MongoDb 排序很慢
- mysql - 从数据库中获取不是来自特定月份的值
- sql-server - AWS RDS (SQL Server) 可疑的暴力登录尝试
- spring - 应用程序不会因 missingTopicFatal 和手动启动的侦听器而停止
- python - 为什么 matplotlib 图像大小必须 <= 2^16?
- junit - Mockito - 函数调用其他函数,我应该同时模拟吗?