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