为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守着星空守着你 2021-11-11 15:56:24
好吧,所以也许这似乎是一个带有简单解决方案的愚蠢问题,但现在我找不到解决方案,也没有找到任何答案。这是我的问题的相关代码: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 + = 20minLim 和 maxLim 的值是从用户输入中读取的。但我想让它不会打印最后一个“+”。怎么做?还有一个额外的问题:对于每打印出 10 个数字,我想要一个新行,以便第 11 个数字打印在另一行上,依此类推。谢谢!
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

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

}


查看完整回答
反对 回复 2021-11-11
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您可以添加一个if来检查您何时到达最后一个号码。像这样的事情:


for ( int i = minLim; i <= maxLim; i++) {

        sum += i;

        if (i + 1 <= maxLim)

            System.out.print(i + " + ");

        else

            System.out.print(i + " ");

    }


查看完整回答
反对 回复 2021-11-11
?
哔哔one

TA贡献1854条经验 获得超8个赞

您已经看到了一些解决方案,它们采用了在最后一个加数之后不打印a的方法。 +


但是你可以很容易地采取相反的观点:在每个加数之前打印一个+ ,除了第一个:


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

或者,如果您不喜欢在 loop内测试循环的开始条件或结束条件的想法,您可以使用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+" ");

都是不错的选择,随便挑...


查看完整回答
反对 回复 2021-11-11
  • 3 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信