如何在此计算中不打印最后的加号

时间:2018-10-11 08:14:43

标签: java for-loop

好的,所以这似乎是一个愚蠢的问题,有一个简单的解决方案,但是现在我找不到解决方案,也没有找到任何答案。

这是我的问题的相关代码:

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个数字打印在另一行上,依此类推。 谢谢!

3 个答案:

答案 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+" ");

所有不错的选择,请选择...