【发布时间】:2021-04-21 20:17:01
【问题描述】:
我更像是一个中级 android 开发者,我想学习如何编写更简洁有效的代码,我在我的应用程序上遇到了这个问题,需要检查一堆语句,比如变量是否为对于每个单独的评分,都小于或大于。
private void rateStock(double peRatio) {
//For Dividend Stocks
if(currentDiv != 0 && fiveYearDiv != 0){
double dividendDiff = currentDiv - fiveYearDiv;
if (peRatio <= 20 && peRatio > 0 && dividendDiff >= 0.01 && payoutRatio <= 0.65) {
int stockRatingDividend = 5;
addItems(stockRatingDividend);
} else if (peRatio > 20 && peRatio <= 25 && dividendDiff >= 0.005 && payoutRatio <= 0.75) {
int stockRatingDividend = 4;
addItems(stockRatingDividend);
} else if (peRatio > 25 && peRatio <= 30 && dividendDiff >= 0.001 && payoutRatio <= 0.85) {
int stockRatingDividend = 3;
addItems(stockRatingDividend);
} else if (peRatio > 30 && peRatio <= 35 && payoutRatio <= 0.95) {
int stockRatingDividend = 3;
addItems(stockRatingDividend);
} else if( peRatio > 35 && peRatio <= 40 && currentDiv > fiveYearDiv && payoutRatio >= 100) {
int stockRatingDividend = 2;
addItems(stockRatingDividend);
} else if( peRatio > 40 || peRatio < 0 && fiveYearDiv > currentDiv && payoutRatio >= 100) {
int stockRatingDividend = 1;
addItems(stockRatingDividend);
} else {
int stockRatingDividend = 0;
addItems(stockRatingDividend);
}
}
}
从上面的代码可以看出,它非常混乱,甚至无法正常工作,因为它必须检查的条件太多,而且它通常不适合任何 else if 语句,只返回 0
我知道这可能很多,但至少有人可以指导我写一篇关于如何编写更有效和更简洁的代码而不是为这段代码编写混乱的 else if 语句的帖子吗?
【问题讨论】:
-
addItems(stockRatingDividend);只能在最后一个else之后写入一次 -
@fantaghirocco 谢谢!这是一个我忽略的好主意,但是如果检查混乱,那么整个其他的呢,你知道我可以在那里改变什么吗?
-
在开头声明
int stockRatingDividend = 0;,在结尾声明addItems(stockRatingDividend);,不带子句,只声明一次。没有这么多重复,它会以相同的方式运行
标签: java performance android-studio if-statement conditional-statements