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

如何编写C++ do while循环实现符合预期的链表数据插入功能?

问题原因

当前代码的do-while循环采用「先执行循环体、后判断循环条件」的执行逻辑,你原有的写法没有对输入的ans做前置判断,无论用户输入的ans是不是1,都会先执行一遍创建链表节点、录入数据的操作,之后才判断是否进入下一轮循环,和预期逻辑不符。

修复后的do-while循环代码
do
{
    cout << "Do you want to add data?? " << endl;
    cin >> ans;

    // 仅当ans为1时执行添加数据逻辑
    if(ans == 1)
    {
        if(start == NULL)
        {
            start = new node();
            cout << "Enter data " << endl;
            cin >> start->data;
            start->next = NULL;
            prev = start;
        }
        else
        {
            temp = new node();
            cout << "Enter data " << endl;
            cin >> temp->data;
            temp->next = NULL;
            prev->next = temp;
            prev = temp;
        }
    }

}while(ans == 1);
逻辑说明

修改后输入ans会先做值判断,只有ans为1时才会走添加节点的流程,如果输入其他值会直接跳过添加逻辑,退出循环,不会生成多余的无效节点。

内容的提问来源于stack exchange,提问作者Efty Shan Abid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:54:11