从技术上讲,布尔值为True(1)或False(0)......如何在循环中使用布尔值?
所以如果FYEProcessing为False,则运行此循环一次,如果FYEProcessing为true,则运行两次:
for (Integer i=0; i<FYEProcessing; ++i){
CreatePaymentRecords(TermDates, FYEProcessing);
}
答案 0 :(得分:7)
技术上,布尔值为True(1)或False(0)
在Java中不是这样。您不能在条件中使用整数代替布尔表达式,即if (1) {...}
不合法。
你最好按顺序执行此操作,而不是尝试使用某种循环策略来避免使用两行调用CreatePaymentRecords()
CreatePaymentRecords(TermDates, FYEProcessing);
if (FYEProcessing) {
//run again
CreatePaymentRecords(TermDates, FYEProcessing);
}
答案 1 :(得分:7)
for (int i=0; i < (FYEProcessing ? 2 : 1); ++i){
CreatePaymentRecords(TermDates, FYEProcessing);
}
答案 2 :(得分:1)
对于对条件使用布尔值true / false的循环,只需使用do {...} while (condition)
或while (condition) {...}
。第一个将至少运行一次,然后检查条件。只有当条件最初为真时,第二个才会运行。
答案 3 :(得分:0)
我认为我们应该努力使代码清晰易懂,我很难想到“布尔循环”是清楚的。尝试使用“布尔循环”在代码中可能看起来更加流畅,但我认为这会降低代码的可理解性和可维护性。
我提炼了你描述的内容:
所以如果FYEProcessing为False,则运行此循环一次,如果FYEProcessing为true,则运行两次
到
所以如果FYEProcessing为False,则运行此循环一次[使用false],如果FYEProcessing为true,则运行两次[with false,then true]
或
使用false运行此循环一次。如果FYEProcessing为true,则使用true
再次运行它
CreatePaymentRecords(TermDates, false);
if (FYEProcessing) {
CreatePaymentRecords(TermDates, true);
}
答案 4 :(得分:-1)
如果只是想要执行此操作,只要布尔值是一个特定值,那么使用do或while循环。
do { CreatePaymentRecords(TermDate, FYEProcessing); } while (FYEProcessing);