使用boolean值进行循环

时间:2010-04-06 19:01:08

标签: java for-loop

从技术上讲,布尔值为True(1)或False(0)......如何在循环中使用布尔值?

所以如果FYEProcessing为False,则运行此循环一次,如果FYEProcessing为true,则运行两次:

for (Integer i=0; i<FYEProcessing; ++i){
   CreatePaymentRecords(TermDates, FYEProcessing);      
}

5 个答案:

答案 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);