首页 > 解决方案 > 我无法理解高级 For-Loop 的工作原理

问题描述

我了解到 Advanced_For_Loop 可以正好采用两个表达式。我不知道当它有三个时它是如何工作的。我的意思是:for(表达式 1:表达式 2:表达式 3)。而且我不知道它是如何在这段代码中迭代的......

   private Sheet fieldVsTime(Workbook wb, String _title,List<PivotField>
   _pivots, List<PivotField> _all,boolean _periods,Map<String, String> 
   _yAxesMapping) {

    for (PivotField pivot : _all == null ? _pivots : _all) {
        List<PivotField> list = pivot.getPivot();
        if (list != null) {
            for (PivotField pivotField : list) {
                int publishDate = Integer.parseInt(pivotField.getValue().toString());
                if (_periods) {
                    publishDate = (publishDate / 10) * 10;
                }
                if (publishDate < minYear) {
                    minYear = publishDate;
                }
                if (publishDate > maxYear) {
                    maxYear = publishDate;
                }
            }
        }
    }

标签: javafor-loopternary-operator

解决方案


它只有两种表达方式:

for (PivotField pivot : (_all == null ? _pivots : _all))
     ----------------   -------------------------------
            1                       2

第二个表达式(_all == null ? _pivots : _all)返回_pivots_all,取决于是否_all == null


推荐阅读