You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在if语句中使用取模运算符判断正偶数?及C++中%运算符报错‘Expression is not assignable’的解决

解决C++取模运算符的使用问题与错误排查

嘿,咱们一步步来搞定你的问题,先揪出代码里的错误,再聊聊怎么用取模判断2的正倍数~

一、先排查你的代码错误:Expression is not assignable

你遇到的这个报错,根源是把赋值运算符=和相等比较运算符==搞混了!

在你的if条件里:

if (i < 25 && i % 2 = 0)

这里的i % 2 = 0是试图把0赋值给i%2这个计算结果,但i%2是一个临时的表达式值(右值),它只能被读取,不能被赋值,所以编译器会抛出“表达式不可赋值”的错误。

修正后的完整可运行代码

把赋值号=改成相等比较的==就解决了,我帮你整理了完整代码:

#include <iostream>
using namespace std;

int main() {
    int i = 0;
    cin >> i; 
    for (; i < 25; i++) { 
        if (i < 25 && i % 2 == 0) { 
            cout << "test" << i << endl;
        } else { 
            cout << "test2" << i << endl;
        }
    }
    return 0;
}

二、如何用取模运算符判断2的正倍数

取模运算符%的作用是计算两个数相除后的余数。对于2的倍数来说,任何数除以2的余数都是0,再加上“正倍数”的要求(数本身要大于0),判断逻辑可以这样写:

  • 核心判断条件:num > 0 && num % 2 == 0
    • num % 2 == 0:确保这个数除以2没有余数,是2的倍数
    • num > 0:限制这个数是正整数,满足“正倍数”的要求

举个简单的独立示例,判断输入的数是不是2的正倍数:

#include <iostream>
using namespace std;

int main() {
    int num;
    cout << "输入一个整数:";
    cin >> num;
    if (num > 0 && num % 2 == 0) {
        cout << num << " 是2的正倍数!" << endl;
    } else {
        cout << num << " 不是2的正倍数!" << endl;
    }
    return 0;
}

内容的提问来源于stack exchange,提问作者Lucky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 21:52:51