c++ - while 循环不会在 bool 条件下停止

标签 c++ loops for-loop while-loop

我编写了一个简单的代码来解决一个人为的问题。我希望程序在 N =< 3 之后退出循环体,但在不满足条件后继续迭代。我哪里出错了?

int main(){

    uint8_t N = 0;
    int power = 1;
    std::cin >> N;

    while (N >= 4){
        power *= 3;
        N -= 3;
    }
        
    power *= N;
    std::cout << power;
    
    return 0;
}
gcc 12.2.0. Flags -Wall -O2

我尝试使用循环 for (N; N >= 4; N -=3) ,但结果没有改变。

最佳答案

uint8_tchar 类型。

在 stdint.h 中,

typedef unsigned char      uint8_t;
由于隐式转换,

'4' 将得到整数 52

如果您接受数字,则可以只使用 int 类型。

关于c++ - while 循环不会在 bool 条件下停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74300516/

相关文章:

javascript - 计算给定年份中属于 13 号的星期五的数量

C++,实时用户输入,在 While 循环期间

python-3.x - 遍历列表字典并更新相应的列 - pandas

c++ - 关于类的 CPP 代码显示错误

c++ - 默认初始化与值初始化

循环内的 JavaScript 闭包 – 简单的实际示例

python - 我可以连续迭代几个字典而不合并它们吗?

javascript - 在不结束底层流的情况下使用 break in for-await-of

c++ - dup2( ) 导致子进程提前终止

c++ - 在多个源/头文件中使用 c++ 类时的头文件设置