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

for 循环问题

正确代码:

public static void main(String[] args) {
    int sum = 0;
    for (int i = 1; i <= 100; i++) {
        if ( i%3 != 0) {
            sum += i;
        }
    }
    System.out.println(sum);
}

问题1:

请问为什么 System.out.println(sum) 和 for循环并列放(在两个大括号下面)而不是像教程里面在 for 循环里面这样:

for (int i = 1; i <= 100; i++) {
        if ( i%3 != 0) {
            sum += i;
        }
        System.out.println(sum);
}


问题2:

如果初始化和变量变化都可以是多个用逗号隔开就好,那么为什么如下代码输出有问题呢?

for (int sum = 0, i = 1; i <= 100 && i % 3 != 0; sum+=i, i++) {
    System.out.println(sum);
}


正在回答

3 回答

问题1:如果你把System.out.println(sum);放在for循环里面,就相当于每次求完和都会输出结果,而和for循环一起并列,最后就只会输出最终的一个值。

问题2:你这样写最后只会输出0,1。原因:循环条件i<=100&&i%3!=0表示与关系,只有&&左右两边都为true时才为真。一开始

sum=0,i=1,满足循环条件,输出sum=0,然后执行sum+=i,i++;

sum=1,i=2,满足循环条件,输出sum=1,然后执行sum+=i,i++;

sum=3,i=3,这时不满足循环条件,因为3%3==0,所以右边为false,不满足循环条件,循环结束

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

这里不错

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

你里面的 System.out.println(sum); 会根据上面的条件,循环打印出多次结果,直至不满足条件为止,上面案例是输出一次结果

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

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165453    人
  • 解答问题       17585    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

for 循环问题

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