C++程序while循环后预期求和输出未显示且无编译错误求助
问题分析与解决
你的代码里存在一个隐蔽的语法问题——while (val <= 10)语句末尾多了一个分号。
在C++中,分号代表一条语句的结束,这个多余的分号会让while循环的循环体变成空语句,后面的{}代码块和循环完全无关。因为循环体没有执行任何操作,val的值一直是1,永远满足val <=10的条件,程序会陷入无限循环,根本执行不到后续的输出语句,所以你看不到求和结果。
修正后的代码如下:
#include <iostream> int main() { int sum = 0, val = 1; while (val <= 10) { // 移除末尾的分号 sum += val; ++val; } std::cout << sum << std::endl; return 0; }
移除while条件后的分号后,大括号内的代码会成为循环体:每次循环将val累加到sum,然后val自增1,当val超过10时退出循环,最终就能正确输出1到10的和55。
内容的提问来源于stack exchange,提问作者Rudra
相关产品推荐
相关产品推荐

