打印1到100中能整除9的数,并算出它们的个数以及和。我这个哪里出错了呢

我能做出来,但是我想知道我这句**for(i=1;(i <= 100) & (i % 9 == 0) ;++i); ** 错在哪
代码片段如下

img


执行结果如下

img

你把条件写在for循环里,那for循环一开始就不满足条件终止了

不满足条件啊。循环只会执行一次,就结束循环了。
i为1时,i%9==0是不满足条件的。
所以结束了循环。

for(i=1;i<=100;++i){
            if (i % 9 == 0){
                //输出
            }
        }

能整除9应该放在for循环里面,而不应该放在条件表达式中,另外&是按位相与,&&是逻辑与。
代码修改如下:


public static void main(String[] args){
        int count = 0;
        int sum = 0;
        int i;
        for(i=1;i<=100;++i){
            if(i%9==0){ //在for循环里判断
                System.out.println( "i="+i);
                count++;
                sum += i;
            }
        }
        System.out.println("count="+count +"  sum="+sum);
        
    }//main end


第一次循环:i=1,(i<=100) & (i%9==0) 就相当于 true & false ,结果是false,不执行,循环结束。
没以后了

且符号 是&&
与符号 是 &
且符号是 判断符号 , 与符号是 运算符号

img


这里与出0 就不满足条件 就退出了。

&这个是位运算符,你这应该用逻辑运算符&&

img