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

如何在C++中不使用布尔运算符判断数字是否在指定区间内

不用布尔运算符实现输入验证的方法

当然可以实现,完全不用||或&&这类布尔运算符,只用if、if...else和while就能完成需求。这里给你两种直观的实现方式:

方式一:无限循环+分支判断

把输入和验证逻辑放在while(true)的无限循环里,通过if...else分别检查两种无效情况,输入有效时直接跳出循环:

#include <iostream>
using namespace std;

int main() {
    int number;
    while (true) {
        cout << "请输入一个数字: ";
        cin >> number;

        if (number < 1) {
            cout << "Wrong number, insert a valid number.\n";
        } else if (number > 20) {
            cout << "Wrong number, insert a valid number.\n";
        } else {
            // 输入符合要求,退出循环
            break;
        }
    }
    // 后续可添加有效输入的处理逻辑
    return 0;
}

方式二:标记变量控制循环

定义标记变量记录输入是否无效,在循环里通过分支判断更新标记,直到输入有效时结束循环:

#include <iostream>
using namespace std;

int main() {
    int number;
    bool isInvalid;

    // 初始输入
    cout << "请输入一个数字: ";
    cin >> number;

    do {
        isInvalid = false;
        if (number < 1) {
            isInvalid = true;
        } else if (number > 20) {
            isInvalid = true;
        }

        if (isInvalid) {
            cout << "Wrong number, insert a valid number: ";
            cin >> number;
        }
    } while (isInvalid);

    // 后续可添加有效输入的处理逻辑
    return 0;
}

两种方法的核心思路都是把“小于1”和“大于20”这两个无效条件拆分开,用独立的if分支分别判断,完全避开了布尔运算符的使用,符合你当前的学习进度要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:45:55