好的,所以这似乎是一个愚蠢的问题,有一个简单的解决方案,但是现在我找不到解决方案,也没有找到任何答案。
这是我的问题的相关代码:
int sum = 0;
for ( int i = minLim; i <= maxLim; i++) {
sum += i;
System.out.print(i + " + ");
}
System.out.print("= "+sum+" ");
此打印:2 + 3 + 4 + 5 + 6 + = 20
minLim和maxLim的值是从用户输入中读取的。
但是我要使其不会打印最后的'+'。 怎么做? 还有一个奖励问题: 对于每打印10个数字,我要换一行,以便第11个数字打印在另一行上,依此类推。 谢谢!
答案 0 :(得分:0)
您可以添加一个if
来检查您的最后一个电话号码。像这样:
for ( int i = minLim; i <= maxLim; i++) {
sum += i;
if (i + 1 <= maxLim)
System.out.print(i + " + ");
else
System.out.print(i + " ");
}
答案 1 :(得分:0)
int sum = 0;
for (int i = minLim ; i <= maxLim ; i++) {
sum += i;
if (i == maxLim)
System.out.print(i);
else
System.out.print(i + " + ");
}
System.out.print("= "+sum+" ");
}
答案 2 :(得分:0)
您已经看到了几种解决方案,它们采用了在最后加号后不打印一个+
的方法。
但是您可以轻松地采取相反的观点:打印一个+
之前每个附加项,除了第一个:
int sum = 0;
for ( int i = minLim; i <= maxLim; i++) {
sum += i;
if (i > minLim)
System.out.print(" + ");
System.out.print(i);
}
System.out.print("= "+sum+" ");
或者,如果您不喜欢在循环内测试循环的开始条件或结束条件的想法,则可以将boolean
变量用作一个-时间标记而不是测试i
:
int sum = 0;
boolean firstTime = true;
for ( int i = minLim; i <= maxLim; i++) {
sum += i;
if (!firstTime)
System.out.print(" + ");
firstTime = false;
System.out.print(i);
}
System.out.print("= "+sum+" ");
所有不错的选择,请选择...