1、前言
日常开发中,我们会碰到各种各样的问题,如果每个问题都能找到合适有效的方法解决,一定会做到事半功倍的效果!
比如这里我要说的最大值。下面我们通过一个例子表现一下
2、题目
假如有如下几个省以及其对应下面的市区进行评选空气质量等级
要求该省每个市区PM指数相加总和≤50分并且该省的每个市区PM指数≤10分,判定该省空气质量为优,
每个市区PM指数相加总和≤60分并且每个市区PM指数≤15分,判定该省空气质量为良,其他为一般
安徽下的五个市区PM指数分别为(10、12、8、9、6)
江苏下的五个市区PM指数分别为(9、6、10、8、9)
浙江下的五个市区PM指数分别为(12、9、13、10、9)
大家可以先试着敲一下如果这里没有用最大值会不会进入for循环误区~
下面是使用最大值的用法
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int[] anhui = new int[]{10,12,8,9,6};
int[] jiangsu = new int[]{9,6,10,8,9};
int[] zhejiang = new int[]{12,9,13,10,9};
//以安徽为例
int type = getResult(anhui);
switch (type) {
case 0:
Log.i("TAG", "该省空气质量为优!");
break;
case 1:
Log.i("TAG", "该省空气质量为良!");
break;
case 2:
Log.i("TAG", "该省空气质量为一般!");
break;
}
}
public int getResult(int[] pms) {
int total = 0;
int max = -1;
for (int i = 0; i < pms.length; i++) {
total += pms[i];
if (max < pms[i]) {
max = pms[i];
}
}
if (total <= 50) {
if (max <= 10) {
return 0;
}
} else if (total <= 60) {
if (max <= 15) {
return 1;
}
}
return 2;
}
}
OK~!有没有很简洁方便!避免了在for循环里加繁琐的逻辑判断。