掃描二維碼
隨時(shí)隨地手機(jī)看文章
do ... while
的出現(xiàn),更多的是作為循環(huán)控制流的一種語(yǔ)法糖。因?yàn)椴徽撌莣hile 還是 for循環(huán),都是要先判斷是否滿(mǎn)足進(jìn)入循環(huán)體的條件的。滿(mǎn)足條件之后才能進(jìn)入循環(huán)去執(zhí)行循環(huán)體內(nèi)的操作。而有些時(shí)候,第一次的執(zhí)行邏輯我們不需要滿(mǎn)足循環(huán)條件,也要執(zhí)行。這時(shí)候就可以用do ... while
。舉個(gè)例子,前幾天的LeetCode每日一題?869. 重新排序得到2的冪
,剛好遇到這么一個(gè)場(chǎng)景:給定正整數(shù) N ,我們按任何順序(包括原始順序)將數(shù)字重新排序,注意其前導(dǎo)數(shù)字不能為零。如果我們可以通過(guò)上述方式得到 2 的冪,返回 true;否則,返回 false。https://leetcode-cn.com/problems/reordered-power-of-2/解題偷懶的話(huà),可以直接用STL的排列相關(guān)的函數(shù)next_permutation來(lái)解答:
class?Solution?{
public:
????bool?reorderedPowerOf2(int?n)?{
????????auto?check?=?[](int?n)?{
????????????return?(n