我有这个丑陋的代码:

if ( v > 10 ) size = 6;
if ( v > 22 ) size = 5;
if ( v > 51 ) size = 4;
if ( v > 68 ) size = 3;
if ( v > 117 ) size = 2;
if ( v > 145 ) size = 1;
return size;

如何摆脱多个if语句?

最佳答案

if ( v > 145 ) size = 1;
else if ( v > 117 ) size = 2;
else if ( v > 68 ) size = 3;
else if ( v > 51 ) size = 4;
else if ( v > 22 ) size = 5;
else if ( v > 10 ) size = 6;

return size;

这对于您的情况更好。

(可选)您应该尽可能选择Switch Case
Update: 如果您已分析'v'的值,通常在大多数情况下都位于较低范围(
if(v < 10)           size = SOME_DEFAULT_VALUE;
else if ( v > 145 )  size = 1;
else if ( v > 117 )  size = 2;
else if ( v > 68 )   size = 3;
else if ( v > 51 )   size = 4;
else if ( v > 22 )   size = 5;
else if ( v > 10 )   size = 6;
further :根据您的分析,您还可以更改条件顺序。如果您知道大多数值都小于10,然后第二位的大多数值位于68-117之间,则可以相应地更改条件序列。

编辑:
if(v < 10)           return SOME_DEFAULT_VALUE;
else if ( v > 145 )  return 1;
else if ( v > 117 )  return 2;
else if ( v > 68 )   return 3;
else if ( v > 51 )   return 4;
else if ( v > 22 )   return 5;
else if ( v > 10 )   return 6;

关于java - 摆脱丑陋的if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3786358/

10-11 21:32