C/C 为什么要专门设计个 do…while?
扫描二维码
随时随地手机看文章
最初
do ... while的出现,更多的是作为循环控制流的一种语法糖。因为不论是while 还是 for循环,都是要先判断是否满足进入循环体的条件的。满足条件之后才能进入循环去执行循环体内的操作。
而有些时候,第一次的执行逻辑我们不需要满足循环条件,也要执行。这时候就可以用do ... while。举个例子,前几天的LeetCode每日一题
869. 重新排序得到2的幂,刚好遇到这么一个场景:
给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。https://leetcode-cn.com/problems/reordered-power-of-2/解题偷懒的话,可以直接用STL的排列相关的函数next_permutation来解答:class Solution {
public:
bool reorderedPowerOf2(int n) {
auto check = [](int n) {
return (n