需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
相关产品推荐
相关产品推荐

