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

C语言do-while循环条件`n < 10`运行逻辑与预期相反问题咨询

问题原因

你对do-while循环的条件触发规则理解有误,do-while的执行逻辑是:先执行一次循环体,再判断while后的条件,条件成立(值为真)时会重复执行循环体,条件不成立(值为假)时才会退出循环,执行后续代码。

对应你的代码逻辑拆解:

int n;
do
{
    // 首先执行:要求用户输入宽度数值
    n = get_int("width");
}
// 输入完成后判断:如果n小于10,条件为真,重新进入循环要求用户输入
while (n < 10);

// 只有n >=10时,上面的条件为假,才会退出do-while循环,执行下面的打印逻辑
for (int i = 0; i < n; i++)
{
    printf("?");
}
printf("\n");

如果你想要实现「用户输入任意正整数n,就打印n个问号,仅限制用户不能输入负数」的需求,可以将do-while的判断条件修改为while (n < 0)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:39:00