如何在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 == 0num % 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
相关产品推荐
相关产品推荐

