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

需Do-while loop实现建议:打印1-50并求和展示

实现1到50的Do-While循环打印与求和功能

没问题,我来一步步帮你搞定这个需求!核心思路很清晰,我们需要用do-while循环完成两个任务:打印1到50的数字,同时累加它们的总和,最后展示结果。

核心步骤拆解

  • 先初始化两个关键变量:一个计数器num从1开始(因为要从1打印),一个总和变量sum初始化为0(用来存累加的结果)
  • 利用do-while循环的特性——先执行循环体,再判断条件——确保我们至少会处理第一个数字(这里刚好符合我们从1开始的需求)
  • 循环体内完成三个动作:打印当前数字、把数字加到总和里、计数器自增
  • 循环结束后,输出最终的总和

代码示例(Java版本)

public class NumberSumPrinter {
    public static void main(String[] args) {
        int num = 1;
        int sum = 0;
        
        do {
            // 打印当前数字,用空格分隔
            System.out.print(num + " ");
            // 将当前数字累加到总和
            sum += num;
            // 计数器加1,准备下一次循环
            num++;
        } while (num <= 50); // 当数字超过50时,停止循环
        
        // 换行后展示总和,让输出更清晰
        System.out.println("\n1到50的数字总和是:" + sum);
    }
}

代码示例(C语言版本)

如果你用C语言,逻辑完全一致,只是语法稍有不同:

#include <stdio.h>

int main() {
    int num = 1;
    int sum = 0;
    
    do {
        printf("%d ", num);
        sum += num;
        num++;
    } while (num <= 50);
    
    printf("\n1到50的数字总和是:%d\n", sum);
    return 0;
}

关键细节说明

  • do-while的循环条件是num <= 50:这样当num变成51时,循环就会终止,刚好覆盖1到50的所有数字
  • 如果想让每个数字单独占一行,只需要把打印语句改成换行输出就行:比如Java里用System.out.println(num),C里用printf("%d\n", num)
  • 其实1到n的总和可以用数学公式n*(n+1)/2直接计算(50*51/2=1275),但既然要求用do-while循环,用累加的方式才符合题目的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:41:39