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

为什么break放在system前面运行的结果不对呢?

public class HelloWorld {
    public static void main(String[] args) {
        
        // 保存累加值
        int sum = 0;
        
        // 从1循环到10
        for (int i = 1; i <= 10; i++) {
            
            // 每次循环时累加求和
            sum = sum + i;
            
            // 判断累加值是否大于20,如果满足条件则退出循环
            if (sum>20 ) {
                break;
                }System.out.print("当前的累加值为:" + sum);
                
                //退出循环
                
            
        }
    }

运行结果:

当前的累加值为:1当前的累加值为:3当前的累加值为:6当前的累加值为:10当前的累加值为:15


正在回答

3 回答

你的 System.out.print("当前的累加值为:" + sum); 还在循环体内,所以每循环一次就会打印一句结果;另外你这里break只是跳出了if语句,并不是跳出for循环

1 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5b9f52e00001a43a07230577.jpg楼主可以看看我的,我感觉楼上不对。

1 回复 有任何疑惑可以回复我~
#1

qq_慕斯313599

层主回答正确,break 在System前面后面都可以。 楼主你得break中断了循环,但是你的System还在for循环{}内,所以输出很多。 另外楼主复制出来的代码少了一个}
2019-04-09 回复 有任何疑惑可以回复我~
#2

qq_慕斯313599 回复 qq_慕斯313599

层主回答正确,break 在System前面后面都可以。 楼主你的代码:System在for循环{}中。 sum=1,不满足if,System输出一次; sum=3,不满足if,System输出一次; sum=15,不满足if,System输出一次; sum=21,满足if,break中断循环,for循环{}内的System不再执行。 另外楼主复制出来的代码少了一个}
2019-04-09 回复 有任何疑惑可以回复我~

因为:满足sum>20时,执行break;语句,就跟出for循环了,后面的System语句就不再执行。break;语句是跳出循环的,可以你弄混了,以为是跳出if语句。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么break放在system前面运行的结果不对呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信