我不明白 advanced-For-Loop 是如何工作的
I can not understand how advanced-For-Loop works
我了解到 Advanced_For_Loop 可以恰好采用两个表达式。
我不知道当它有三个时它是如何工作的。我的意思是:for(expression1 : expression2 : expression3)。
而且我不知道它在这段代码中是如何迭代的...
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;
}
}
}
}
它只有两个表达式:
for (PivotField pivot : (_all == null ? _pivots : _all))
---------------- -------------------------------
1 2
第二个表达式 (_all == null ? _pivots : _all)
returns _pivots
或 _all
,取决于是否 _all == null
.
相当于此代码:
List<PivotField> pivotFields;
if( _all == null ) {
pivotFields = _pivots;
}
else {
pivotFields = _all;
}
for (PivotField pivot : pivotFields) {
...
}
我了解到 Advanced_For_Loop 可以恰好采用两个表达式。 我不知道当它有三个时它是如何工作的。我的意思是:for(expression1 : expression2 : expression3)。 而且我不知道它在这段代码中是如何迭代的...
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;
}
}
}
}
它只有两个表达式:
for (PivotField pivot : (_all == null ? _pivots : _all))
---------------- -------------------------------
1 2
第二个表达式 (_all == null ? _pivots : _all)
returns _pivots
或 _all
,取决于是否 _all == null
.
相当于此代码:
List<PivotField> pivotFields;
if( _all == null ) {
pivotFields = _pivots;
}
else {
pivotFields = _all;
}
for (PivotField pivot : pivotFields) {
...
}