我有这个丑陋的代码:
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/