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

C#如何将字符串追加到当前控制台输出行末尾 附编程练习题需求

问题原因

你使用的Console.WriteLine()方法会在输出内容末尾自动追加换行符,所以每调用一次就会生成新行,无法实现内容追加到同一行的效果。正确的实现逻辑是:先在变量中拼接好当前行的全部内容,最后再一次性调用输出方法打印整行。


修正后的完整实现代码

static void Main(string[] args)
{
    int num = -20;
    // 存储上一行是否同时包含!和#,对应需求5的标记位
    bool lastLineHasBoth = false;
    while (num <= 20)
    {
        // 跳过5-15的数字,对应需求1
        if (num >=5 && num <=15)
        {
            num++;
            continue;
        }
        
        // 初始化当前行内容变量,所有规则匹配后再统一输出
        string currentLine = "";
        
        // 能被3整除开头加!,对应需求4
        if (num % 3 == 0)
        {
            currentLine += "!";
        }
        
        // 负数开头加*,对应需求2
        if (num < 0)
        {
            currentLine += "*";
        }
        
        // 拼接当前数字本身
        currentLine += num.ToString();
        
        // 能被2整除末尾加#,对应需求3
        bool currentHasHash = num % 2 == 0;
        if (currentHasHash)
        {
            currentLine += "#";
        }
        
        // 上一行同时有!和#则追加wow,对应需求5
        if (lastLineHasBoth)
        {
            currentLine += "wow";
        }
        
        // 一次性输出整行,避免多余换行
        Console.WriteLine(currentLine);
        
        // 更新标记位,记录当前行是否同时包含!和#,供下一行判断使用
        bool currentHasExclamation = num % 3 == 0;
        lastLineHasBoth = currentHasExclamation && currentHasHash;
        
        num++;
    }
}

关键逻辑说明

  • 所有行内容先存储在currentLine变量中完成全部规则拼接,再统一输出,彻底避免多次调用输出方法产生的多余换行问题
  • 用lastLineHasBoth布尔变量记录上一行的状态,严格匹配需求5的判断要求
  • 跳过5-15区间的逻辑使用continue直接进入下一轮循环,代码结构更清晰易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:15:05