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

对于下面这个Java程序,关于for循环语句的两个问题。

public class HelloWorld
{
    public static void main(String[] args)
    {
        int sum = 0; // 保存不能被3整除的数之和
        
        // 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
        for (int i = 1;i<=100;)
        {
            
            // 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
            if (i % 3 != 0)//And here
            {
                sum = sum + i; // 累加求和
                i++;//Here
            }
        }
        
        System.out.println("1到100之间不能被3整除的数之和为:" + sum);
    }
}

1、i的自增不应该是在求和之后吗?i++放在括号里边,在求和之前数值就发生改变了啊。
2、在if判断条件后面,当i等于3的倍数的时候,i%3!=0就为假了,程序会怎么执行?


正在回答

4 回答

首先第一个问题是,for循环里面的i++是先引用再增加的,你调试代码就可以发现,for循环第一个i的值是你最开始赋值的;后面才会在每次循环开始的时候增加。

第二个问题是,当i等于3的倍数的时候,条件为假了,就不会进入if后面的语句,程序当然会继续往下执行下去,直到走完这次循环。

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

右手很强壮 提问者

非常感谢!
2016-08-07 回复 有任何疑惑可以回复我~

你也是厉害。都不想说了。

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

右手很强壮 提问者

哈哈,我就是吊。
2016-08-08 回复 有任何疑惑可以回复我~

首先 你的i++自增应该放在for循环里边 你会明白为什么的 如果你这样写。

第二 当if(i%3!=0)为假时,条件语句不执行,直接跳过{},执行后边的语句。

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

1、第二个i++去掉

2、然后条件家的时候是不执行里面内容

3、这都是基础啊

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

举报

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

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

进入课程

对于下面这个Java程序,关于for循环语句的两个问题。

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