java实用小技巧——巧用最大值

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循环里加繁琐的逻辑判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值