所以技術上布爾值爲True(1)或False(0)...我如何在循環中使用布爾值?使用循環的布爾值
所以如果FYEProcessing爲False,運行這個循環一次,如果FYEProcessing是真實的,運行它兩次:
for (Integer i=0; i<FYEProcessing; ++i){
CreatePaymentRecords(TermDates, FYEProcessing);
}
所以技術上布爾值爲True(1)或False(0)...我如何在循環中使用布爾值?使用循環的布爾值
所以如果FYEProcessing爲False,運行這個循環一次,如果FYEProcessing是真實的,運行它兩次:
for (Integer i=0; i<FYEProcessing; ++i){
CreatePaymentRecords(TermDates, FYEProcessing);
}
所以技術上是一個布爾值是真(1)或FALSE(0)
在Java中這不是真的。您不能在條件中使用整數代替布爾表達式,即if (1) {...}
是不合法的。
你是剛剛做這個順序,而不是試圖使用某種循環策略,以避免兩行其稱之爲CreatePaymentRecords()
CreatePaymentRecords(TermDates, FYEProcessing);
if (FYEProcessing) {
//run again
CreatePaymentRecords(TermDates, FYEProcessing);
}
之間沒有任何關係,這可以起作用......稍作修改,我需要createPaymentRecords第一次輸入0,第二次輸入1,所以我必須努力編碼值... – Leslie 2010-04-06 19:08:22
如果您只是想只要布爾是執行這更好一個特定的值然後使用do或while循環。
do { CreatePaymentRecords(TermDate, FYEProcessing); } while (FYEProcessing);
除非CreatePaymentRecords更新FYEProcessing的值(我們沒有被告知),否則這個循環將永遠不會退出。 – 2010-04-06 19:12:53
給出了「我怎樣才能在循環中使用布爾值?」我的回答是信息。也許作者確實知道do或while循環。發佈的if語句不是大多數人想要調試的代碼。 – 2010-04-06 23:59:25
for (int i=0; i < (FYEProcessing ? 2 : 1); ++i){
CreatePaymentRecords(TermDates, FYEProcessing);
}
爲一個循環,將使用一個true/false爲條件,只需使用do {...} while (condition)
或while (condition) {...}
。第一個將始終運行至少一次,然後檢查條件。只有當條件最初爲真時,第二個纔會運行。
我認爲我們應該努力使代碼清晰易懂,並且我很難考慮「布爾循環」的清晰位置。嘗試使用「布爾循環」在代碼中可能看起來更加清晰,但我認爲這會降低代碼的可理解性和可維護性。
我提煉你所描述的:
所以如果FYEProcessing爲False,運行這個循環一次,如果FYEProcessing是真實的,運行它兩次,
到
所以如果FYEProcessing爲False,則運行此循環一次[帶有false],如果FYEProcessing爲true,則運行兩次[false,然後爲true]
或
來看,這種循環一次假。如果FYEProcessing是真實的,與真正的
CreatePaymentRecords(TermDates, false);
if (FYEProcessing) {
CreatePaymentRecords(TermDates, true);
}
再次運行它作爲一個側面說明,如果你正在尋找一個布爾值在循環中,你可以使用'但似乎while'不工作你需要什麼。 – 2010-04-06 19:07:50
Nit:我認爲您的「我
2010-04-06 19:35:27
你也應該使用int而不是Integer,儘管你永遠不會訪問'i'變量。使用Integer只是無意間增加開銷。 – 2010-04-06 19:37:51