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,等等。每个timepatchId
增加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,等等。每个timepatchId
增加1,返回值也增加1。因此,首先减去8550,这样当patchId-8550
为0时,返回708,以此类推。然后加708,只需返回patchId-8550+708
,无需进一步修改。此时,无需进行查找,因此只需去掉开关
语句并使用直接返回
(顺便说一句,写这个解释要比思考过程本身长10倍左右。)