Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在这个函数中查找数字序列_Java_Design Patterns_Numbers_Sequence - Fatal编程技术网

Java 在这个函数中查找数字序列

Java 在这个函数中查找数字序列,java,design-patterns,numbers,sequence,Java,Design Patterns,Numbers,Sequence,我只是想知道是否有办法找到一个数字模式,因为目前我正在使用这个 private int getRakeConfigForPatch(int patchId) { switch (patchId) { case 8550: return 708; case 8551: return 709; case 8552: return 710; case 8553: return 711;

我只是想知道是否有办法找到一个数字模式,因为目前我正在使用这个

    private int getRakeConfigForPatch(int patchId) {
    switch (patchId) {
    case 8550:
        return 708;
    case 8551:
        return 709;
    case 8552:
        return 710;
    case 8553:
        return 711;
    case 8554:
        return 712;
    case 8555:
        return 713;
    case 8556:
        return 714;
    case 8557:
        return 715;
    }
    return -1;
}
我想知道如何找出这个序列的模式,因为我至少还有100多个案例要添加到同一个模式中,如果我不需要的话,我真的不需要额外的200行代码


谢谢你的帮助。

在我看来,你可以做到这一点:

private int getRakeConfigForPatch(int patchId) {
    if (patchId >= 8550 && patchId <= 8557) {
        return patchId - 8550 + 708; // or patchId - 7842 for short, but less clear
    }
    return -1;
}
private int getRakeConfigForPatch(int patchId){

如果(patchId>=8550&&patchId,在我看来,您可以这样做:

private int getRakeConfigForPatch(int patchId) {
    if (patchId >= 8550 && patchId <= 8557) {
        return patchId - 8550 + 708; // or patchId - 7842 for short, but less clear
    }
    return -1;
}
private int getRakeConfigForPatch(int patchId){

如果(patchId>=8550&&patchId哦,我的天,你刚刚为我节省了很多时间,谢谢:)@据网站报道,我最不在乎的是,我得等6分钟。看在摩西的份上,有人能给我解释一下patchId-8550+708的返回吗?ted是怎么得到这个的?@TedHopp你能更好地解释你的答案吗?@KickButtowski-看看这些案例。当
patchId
为8550时,OP想返回708。当它为8551时,返回709,等等。每个time
patchId
增加1,返回值也增加1。因此,首先减去8550,这样当
patchId-8550
为0时,返回708,以此类推。然后加708,只需返回
patchId-8550+708
,无需进一步修改。此时,无需进行查找,因此只需去掉
开关
语句并使用
直接返回
(顺便说一句,写这个解释比思考过程本身要长10倍。)哦,我的天啊,你刚刚为我节省了很多时间,谢谢:)@据网站报道,我最不在乎的是,我得等6分钟。看在摩西的份上,有人能给我解释一下patchId-8550+708的返回吗?ted是怎么得到这个的?@TedHopp你能更好地解释你的答案吗?@KickButtowski-看看这些案例。当
patchId
为8550时,OP想返回708。当它为8551时,返回709,等等。每个time
patchId
增加1,返回值也增加1。因此,首先减去8550,这样当
patchId-8550
为0时,返回708,以此类推。然后加708,只需返回
patchId-8550+708
,无需进一步修改。此时,无需进行查找,因此只需去掉
开关
语句并使用
直接返回
(顺便说一句,写这个解释要比思考过程本身长10倍左右。)